php中的数字格式
Posted
技术标签:
【中文标题】php中的数字格式【英文标题】:number formatting in php 【发布时间】:2014-06-23 11:00:44 【问题描述】:我想像下面这样格式化数字
13.20 to 13.2
13.34 to 13.34
13.00 to 13
我尝试使用 str_replace() 和 number_format() 的组合,但无法产生所需的结果。
如果有人有任何想法,请帮助我。
提前致谢
【问题讨论】:
检查最后的 0 并将其删除,如果是 '.'是在最后也删除它。13.12345
会发生什么?
【参考方案1】:
尝试使用内置的round函数:
echo round(1.23456, 2);
这将返回 1.23。当然,您必须决定保留小数点后多少个数字。
【讨论】:
这会产生 OP 想要的结果。【参考方案2】:number_format
应该可以工作:
<?php
$number = 12.345;
echo number_format($number, 1); # Produces number with one decimal precision.
?>
编辑:
<?php
$number = 12.30;
#Strips ZEROs and decimal point from the end
echo rtrim($number, '0.'); #Result: 12.3
?>
【讨论】:
他只是想删除我猜结果中最后附加的'0'。因为他保持 13.34 的原样 只有当小数点后的值像 .30 时,我才想要一位小数,如果值像 0.34 .55,我想要两位小数 如果编号为12.34会发生什么??输出将是 12.3 添加了另一个解决方案 - 它将从右侧删除0
和 .
。 13.45
=> 13.45
, 13.40
=> 13.4
和 13.00
=> 13
@NaN 见文森特·德科的回答。【参考方案3】:
或者简单地说,这很神奇:
$number + 0
// 12.30 + 0 = 12.3
或者您可以将您的号码转换为浮动:
echo floatval($number);
【讨论】:
【参考方案4】:这取决于您使用的变量类型。字符串13.20
将输出13.20
,但float 13.20
将输出13.2
。
你所要做的就是投射它:
echo (float) '13.20'; // Will output 13.2
【讨论】:
以上是关于php中的数字格式的主要内容,如果未能解决你的问题,请参考以下文章