将浮点数格式化为两位小数

Posted

技术标签:

【中文标题】将浮点数格式化为两位小数【英文标题】:Format a float to two decimal places 【发布时间】:2012-09-15 07:44:20 【问题描述】:

我想格式化一个浮点值,我必须保留两位小数。

例如,如果我有一个价格为5.2 的浮点数,我希望它被格式化为5.20

【问题讨论】:

php.net/manual/en/function.sprintf.php 【参考方案1】:

试试number_format:

echo number_format("5.2",2)

【讨论】:

This might also be helpful. 请记住 number_format 返回一个字符串,因此您的浮点数将不再是浮点数。如果您尝试在计算中使用结果数字,您可能会得到不希望的结果。您可以通过将其包装在 floatval() 中将其转换回浮点数 注意:+number_format("5.2",2); 会给你一个数字,而number_format("5.2",2) 会给出一个字符串。无论如何,sprintf('%0.2f', $num) 在一般情况下一直是我的首选。从来没有正当的理由进行基准测试,如果您有正当理由使用其他方式(个人偏好(或上下文)除外),请告诉我。干杯! 注意:number_format 会将您的数字四舍五入...例如 number_format('21.188624', 2, ',', ' ') 是 21,19。 ***.com/questions/3833137/… 重要提示:如果您想对结果进行计算,正如 Baxny 所提到的,转换 number_format(n > 999, 2) 将导致 1。您不能转换或计算带有逗号的数字字符串,因此请务必将其删除:number_format('5.2', 2, '.', '');【参考方案2】:

您需要使用printfsprintf。您可以在php docs 中了解更多信息。

【讨论】:

【参考方案3】:

如果您只是想确保以两位小数显示数字,您还可以使用number_format,或(如果这是货币值)money_format。

例如:echo number_format('5.2', 2);

【讨论】:

【参考方案4】:

试试这个:

number_format((float)$foo, 2, '.', '');

【讨论】:

请考虑编辑您的答案,以说明您的代码如何解决手头的问题。 @Matt 这个答案已经足够好了.. 看看上面的答案,它完全一样...

以上是关于将浮点数格式化为两位小数的主要内容,如果未能解决你的问题,请参考以下文章

将浮点数格式化为 n 位小数

将浮点数与字符串连接并舍入到小数点后 2 位

如何在 Python 中将浮点数格式化为固定宽度

将浮点数格式化为 NSString 时截断多余的零

当使用print语句输出时,Python将所有浮 点数字格式化为小数点后两位。对吗?

浮点数四舍五入到小数点后两位