十进制的number_format问题[关闭]

Posted

技术标签:

【中文标题】十进制的number_format问题[关闭]【英文标题】:number_format issue with decimal [closed] 【发布时间】:2013-05-15 19:56:56 【问题描述】:

我正在尝试以逗号分隔格式显示数据库中的十进制数.... 例如 1000000 为 1,000,000

我目前正在使用 number_format() 函数

但是当我进行一些计算时它会变得混乱...... 例如 它显示 900000.00 到 9.00 而不是 900000.00=> 900,000.00

有什么帮助吗??

这是我的代码

if($amount==$fee)
 $status='Huna DENI';

 

elseif($amount<$fee)
$debt=$fee-$amount;
$status='Una DENI la:'.' '.number_format($debt,2,".",",").'
 '.'<font     color="#003399">'.'TSH'.'</font>';
                        

【问题讨论】:

number_format() 只能用于演示,不能用于计算 查看代码中带有$debt=$fee-$amount; 的行,然后您使用了$debt['amount'],不应该只是$debt 吗?如果没有,$debt['amount'] 将如何具有价值? (在$debt=$fee-$amount; $debt['amount']的值和类型是什么?你可以做var_dump($debt['amount']); 【参考方案1】:

你使用的是$debt['amount'],而你声明的变量是$debt,所以你的代码应该看起来像

$status='Una DENI la:'.' '.number_format($debt,2,".",",").'

【讨论】:

确实如此。简短解释: ($debt['amount'] 当 $debt 是标量时:$debt 转换为字符串,'amount' 转换为 int$debt['amount'] 变为 $debt[0],对于字符串表示 "the第一个字符”,即9,因此这是将被格式化的值)。 是的,我混合了它.....然后 @internally1 欢迎您,不要忘记接受答案以帮助将来有类似问题的人

以上是关于十进制的number_format问题[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

将十进制数字截取到 2 位,但不应使用 ceil 或 floor 将其四舍五入

php number_format() 的问题

在php中将整数转换为十进制值

如何以 0 作为十进制值打印整数?

减去字符串并转换为十进制而不四舍五入

如果没有小数,则添加默认小数[重复]