<无详细内容>
-
- Class transformnumber{
- Public $chinaData = Array (' 1 ' = ' one ', ' 2 ' + ' II ', ' 3 ' = ' three ', ' 4 ' = ') ', ' 5 ' = ' Wu ', ' 6 ' = ' land ', ' 7 ' = ' seven ', ' 8 ' = ' ba ', ' 9 ' = ' jiu ');
- Public $chinaDataInt = Array (' 1 ' = = ' Yuan ', ' 2 ' = ' pick ', ' 3 ' = ' ' Bai ', ' 4 ' = ' thousand ', ' 5 ' + ' million ', ' 6 ' = ' ' Pick ', ' 7 ' = ' Bai ', ' 8 ' = ' thousand ', ' 9 ' + ' billion ', ' ten ' = ' pick ', ' one ' and ' Bai ', ' ' A ' and ' thousand ', ' ' + ' (million ');
- Public $chinaDataFloat = Array (' 1 ' = ' angle ', ' 2 ' = ' + ');
- Private $Intnumber; String
- Private $Floatnumber; String
- Public $error = Array (' 0 ' = ' 0 ', ' def ' = ' data format not supported ');
- Public function __construct ($intnumber, $floatnumber) {
- $this->intnumber = $intnumber;
- $this->floatnumber = $floatnumber;
- }
- /*13 bit integer */
- Public Function Gettransint () {
- $this->intnumber = intval ($this->intnumber);
- $len = strlen ($this->intnumber);
- if ($len > 13) {
- Return $this->errornotice (1);
- }
- if ($this->intnumber = = 0) {
- return $this->errornotice (' def ');
- }
- $intData = Strrev (substr ($this->intnumber,0, $len));
- $data = $this->settransint ($intData, $len);
- Krsort ($data);
- $STR = RTrim (Join ($data, '), ' 0 ');
- if (substr ($this->intnumber, $len -1,1) = = 0) {
- $str. = ' Yuan ';
- }
- Unset ($data);
- return $str;
- }
- Public Function gettransfloat () {
- return $this->settransfloat ($this->floatnumber,strlen ($this->floatnumber));
- }
- Private Function Settransint ($intData, $pos) {
- for ($i =0; $i < $pos; $i + +) {
- $oneData = substr ($intData, $i, 1);
- if ($i = = 4 | | ($i%8) = = 4) && $oneData = = 0) {
- if (substr ($intData, $i +1,1) = = 0 && substr ($intData, $i +2,1) = = 0 && substr ($intData, $i +3,1) = = 0) {
- if (substr ($intData, $i -1,1) = = 0) {
- Continue
- }else{
- $data [] = ' 0 ';
- }
- }else{
- $data [] = ' million ';
- Continue
- }
- Continue
- }
- if ($i%8 = = 0 && $i! = 0 && $oneData = = 0) {
- $data [] = ' billion ';
- }
- if ($oneData = = 0) {
- if (($i = = 4 | | $i = = 7)) {
- if ((substr ($intData, $i -1,1) ==0)) {
- Continue
- }else{
- $data [] = ' 0 ';
- }
- }else{
- if (substr ($intData, $i -1,1)!=0 && $i!=3 && $i! = 8) {
- $data [] = ' 0 ';
- }else{
- if ($i = = 3 && substr ($intData, $i, 1) = = 0 && substr ($intData, $i -1,1)! = 0) {
- $data [] = ' 0 ';
- }
- }
- }
- }else{
- $data [] = $this->chinadata[$oneData]. $this->chinadataint[$i +1];
- }
- }
- Unset ($intData, $oneData, $i);
- return $data;
- }
- Tight support for two decimal places
- Private Function Settransfloat ($floatData, $pos) {
- if ($pos > 2) {
- return $this->errornotice (' def ');
- }
- if ($floatData {0} = = 0) {
- $data [] = ' 0 ';
- }else{
- $data [] = $this->chinadata[$floatData {0}]. $this->chinadatafloat[1];
- }
- if ($floatDataBB Puma! = 0) {
- $data [] = $this->chinadata[$floatDataBB Puma]. $this->chinadatafloat[2];
- }
- Return implode (", $data);
- }
- Public Function Errornotice ($error) {
- return $this->error[$error];
- }
- }
- $num = new Transformnumber (' 100228030 ', ' 80 ');
- echo $num->gettransint ();
- echo $num->gettransfloat ();
Copy Code |