Php 用于显示的货币格式:";x"-&燃气轮机&引用;x、 00";?

Php 用于显示的货币格式:";x"-&燃气轮机&引用;x、 00";?,php,Php,我使用浮点格式在MySQL中存储货币,但是.00被删除,因为它们没有太多意义,但我想使用PHP以正确的货币格式向用户展示它们 我编写了一个函数来检查money字段是否有任何句点,否则添加.00 但就我个人而言,我不喜欢这个函数,所以我正在寻找一个内置函数,可以完成同样的工作: function formatMoney($price){ if (strpos($price,".") > -1) return $price; else retur

我使用浮点格式在MySQL中存储货币,但是
.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机器上不起作用。