PHP:number_format问题

时间:2017-06-06 13:00:34

标签: php

我接管了一个目前仍在使用的非常古老的php项目。 它是一个定制的“购物”网站。

当产品被订购时,它会将货币值作为整数字符串插入数据库:

2000

然后按如下方式输出:

  

R20,00

使用此代码

echo number_format($order['order_total'] / 100, 2, ",", "");

我的问题是,如果订单的价值为 R 15 256.00 该记录如下插入:

15256

并以如下方式输出给用户:

  

R 152,56

但最终应该像这样显示

  

R15,256.00

我确实理解通过在上述查询中将金额除以100来解决问题。如果我改变查询,那么较大的数字看起来很好,但较小的数量,如R20,00显示为R2000,00

任何帮助都会很棒。

2 个答案:

答案 0 :(得分:2)

你可以使用PHP的原生函数money_format(),它将数字格式化为货币。 使用setlocale(),您可以设置适当的区域设置。

setlocale(LC_MONETARY, 'en_IN'); 
echo money_format('%!i', 15256);

这将输出:

  

15,256.00

答案 1 :(得分:0)

试试这个

echo number_format($order['order_total'] / 100, 2, ".", ",");

您可以阅读有关数字格式here的更多信息。