Php 用于显示的货币格式:";x"-&燃气轮机&引用;x、 00";?
我使用浮点格式在MySQL中存储货币,但是Php 用于显示的货币格式:";x"-&燃气轮机&引用;x、 00";?,php,Php,我使用浮点格式在MySQL中存储货币,但是.00被删除,因为它们没有太多意义,但我想使用PHP以正确的货币格式向用户展示它们 我编写了一个函数来检查money字段是否有任何句点,否则添加.00 但就我个人而言,我不喜欢这个函数,所以我正在寻找一个内置函数,可以完成同样的工作: function formatMoney($price){ if (strpos($price,".") > -1) return $price; else retur
.00
被删除,因为它们没有太多意义,但我想使用PHP以正确的货币格式向用户展示它们
我编写了一个函数来检查money字段是否有任何
句点,否则添加.00
但就我个人而言,我不喜欢这个函数,所以我正在寻找一个内置函数,可以完成同样的工作:
function formatMoney($price){
if (strpos($price,".") > -1)
return $price;
else
return $price . ".00";
}
Edit:对于那些以某种方式回答我问题的人,应该知道money\u格式
在Windows机器上不起作用,如下所述摘自PHP手册:
仅当系统具有strfmon时,才定义money_format()函数
能力。例如,Windows没有,所以money_format()是
在Windows中未定义
因此,您应该使用number\u格式
来代替它。你可以看到我如何解决这个问题的答案。为什么不使用
例如:
$price = 43;
money_format('%.2n', $price);
使用或。似乎钱的格式在Windows机器上不起作用,然后我不得不使用
number\u格式($price,2)
,效果非常好
PHP手册中的注释:
仅当系统具有strfmon时,才定义函数money\u format()
能力。例如,Windows没有,所以money_format()是
在Windows中未定义
如果
$price
是1.2
或1.234
(或2.0/3
),该怎么办?另外,$price
的预期类型是什么?您也可能正在无声地将数字升级为字符串!这些听起来都不好。(无声促销的问题是,现在返回类型可能是-$price类型或-type-a-string类型:它应该总是一个字符串。)仅供参考,浮动不是存储货币值的好格式,因为它们会出现舍入错误。最好改用decimal(它实现不受舍入错误影响的定点十进制数,前提是所有数学运算至少由SQL server完成)。sprintf将结果字符串放入另一个变量中,而不是打印到STDOUT。OP提供的示例代码返回一个值,没有把它放在标准输出上。看来money\u格式
在Windows机器上不起作用。