php中money用什么显示,如何使用PHP将十进制数转换为单词(money格式)?

我只需要一点帮助.因为我正在创建一个代码,用于将小数字转换为单词中的Money格式.例如,如果

我有这个号码

‘2143.45’

输出应该是

‘二千一百四十三,四十五美分’

我找到了这样的代码,但我不知道如何包含美分.

function convertNumber($number)

{

list($integer, $fraction) = explode(".", (string) $number);

$output = "";

if ($integer{0} == "-")

{

$output = "negative ";

$integer = ltrim($integer, "-");

}

else if ($integer{0} == "+")

{

$output = "positive ";

$integer = ltrim($integer, "+");

}

if ($integer{0} == "0")

{

$output .= "zero";

}

else

{

$integer = str_pad($integer, 36, "0", STR_PAD_LEFT);

$group = rtrim(chunk_split($integer, 3, " "), " ");

$groups = explode(" ", $group);

$groups2 = array();

foreach ($groups as $g)

{

$groups2[] = convertThreeDigit($g{0}, $g{1}, $g{2});

}

for ($z = 0; $z < count($groups2); $z++)

{

if ($groups2[$z] != "")

{

$output .= $groups2[$z] . convertGroup(11 - $z) . (

$z < 11

&& !array_search('', array_slice($groups2, $z + 1, -1))

&& $groups2[11] != ''

&& $groups[11]{0} == '0'

? " and "

: ", "

);

}

}

$output = rtrim($output, ", ");

}

if ($fraction > 0)

{

$output .= " point";

for ($i = 0; $i < strlen($fraction); $i++)

{

$output .= " " . convertDigit($fraction{$i});

}

}

return $output;

}

function convertGroup($index)

{

switch ($index)

{

case 11:

return " decillion";

case 10:

return " nonillion";

case 9:

return " octillion";

case 8:

return " septillion";

case 7:

return " sextillion";

case 6:

return " quintrillion";

case 5:

return " quadrillion";

case 4:

return " trillion";

case 3:

return " billion";

case 2:

return " million";

case 1:

return " thousand";

case 0:

return "";

}

}

function convertThreeDigit($digit1, $digit2, $digit3)

{

$buffer = "";

if ($digit1 == "0" && $digit2 == "0" && $digit3 == "0")

{

return "";

}

if ($digit1 != "0")

{

$buffer .= convertDigit($digit1) . " hundred";

if ($digit2 != "0" || $digit3 != "0")

{

$buffer .= " and ";

}

}

if ($digit2 != "0")

{

$buffer .= convertTwoDigit($digit2, $digit3);

}

else if ($digit3 != "0")

{

$buffer .= convertDigit($digit3);

}

return $buffer;

}

function convertTwoDigit($digit1, $digit2)

{

if ($digit2 == "0")

{

switch ($digit1)

{

case "1":

return "ten";

case "2":

return "twenty";

case "3":

return "thirty";

case "4":

return "forty";

case "5":

return "fifty";

case "6":

return "sixty";

case "7":

return "seventy";

case "8":

return "eighty";

case "9":

return "ninety";

}

} else if ($digit1 == "1")

{

switch ($digit2)

{

case "1":

return "eleven";

case "2":

return "twelve";

case "3":

return "thirteen";

case "4":

return "fourteen";

case "5":

return "fifteen";

case "6":

return "sixteen";

case "7":

return "seventeen";

case "8":

return "eighteen";

case "9":

return "nineteen";

}

} else

{

$temp = convertDigit($digit2);

switch ($digit1)

{

case "2":

return "twenty-$temp";

case "3":

return "thirty-$temp";

case "4":

return "forty-$temp";

case "5":

return "fifty-$temp";

case "6":

return "sixty-$temp";

case "7":

return "seventy-$temp";

case "8":

return "eighty-$temp";

case "9":

return "ninety-$temp";

}

}

}

function convertDigit($digit)

{

switch ($digit)

{

case "0":

return "zero";

case "1":

return "one";

case "2":

return "two";

case "3":

return "three";

case "4":

return "four";

case "5":

return "five";

case "6":

return "six";

case "7":

return "seven";

case "8":

return "eight";

case "9":

return "nine";

}

}

$num = 500254.89;

$test = convertNumber($num);

echo $test;

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值