我想要一个PHP格式,格式化为至少2位小数,最多8位小数。你怎么能正确地做到这一点。
更新:对不起,我的问题是说我的号码是“4”。我希望它显示为“4.00”,如果我有“2.000000001”那么它显示为“2.00”或如果我有“3.2102”它将显示为“2.00”。 iPhone上有一个NSNumber格式化程序,与PHP相同。
答案 0 :(得分:7)
这格式化8位小数的$ n数字,然后删除尾随零,最多6次。
$s = number_format($n, 8);
for($i=0; $i<8-2; $i++) {
if (substr($s, -1) == '0')
$s = substr($s, 0, -1);
}
print "Number = $s";
答案 1 :(得分:0)
使用sprintf()
将数字格式化为一定数量的小数位:
$decimal_places = 4;
$format = "%.${decimal_places}f";
$formatted = sprintf($format,$number);
答案 2 :(得分:0)
检查数字格式功能:
<?php
$num = 43.43343;
$formatted = number_format(round((float) $num, 2), 2);
?>
答案 3 :(得分:0)
我不明白为什么你想要以不一致的准确度显示数字。我不明白你在评论中想要描述的模式。
但是让我们假设您需要以下行为:您希望将数字表示为8位小数,如果结果中有超过2个尾随零,则需要删除多余的零。编码并不比用英语表达要困难得多。在伪代码中:
$mystring = string representation of number rounded to 8 decimal places;
while (last character of $mystring is a 0) {
chop off last character of $mystring;
}
答案 4 :(得分:0)
使用 preg_match 只是得到零结束然后rtim
<?php
$nn = number_format(10.10100011411100000,13);
preg_match('/[0]+$/',$nn,$number);
if(count($number)>0){
echo rtrim($nn,$number[0]);
}
希望它会对你有所帮助。