将浮点数格式化为两位小数
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】:
您需要使用printf
或sprintf
。您可以在php docs 中了解更多信息。
【讨论】:
【参考方案3】:如果您只是想确保以两位小数显示数字,您还可以使用number_format,或(如果这是货币值)money_format。
例如:echo number_format('5.2', 2);
【讨论】:
【参考方案4】:试试这个:
number_format((float)$foo, 2, '.', '');
【讨论】:
请考虑编辑您的答案,以说明您的代码如何解决手头的问题。 @Matt 这个答案已经足够好了.. 看看上面的答案,它完全一样...以上是关于将浮点数格式化为两位小数的主要内容,如果未能解决你的问题,请参考以下文章