我想要一个PHP数字格式化至少2位小数位和最多8位小数位。你怎么能正确地做到这一点。高级PHP数字格式化
更新:对不起,我的问题是说我有号码“4”。我希望它显示为“4.00”,如果我有“2.000000001”,那么它显示为“2.00”或者如果我有“3.2102”它将显示为这样。 iPhone上有一个NSNumber格式化程序,PHP中有相同的格式化程序。
我想要一个PHP数字格式化至少2位小数位和最多8位小数位。你怎么能正确地做到这一点。高级PHP数字格式化
更新:对不起,我的问题是说我有号码“4”。我希望它显示为“4.00”,如果我有“2.000000001”,那么它显示为“2.00”或者如果我有“3.2102”它将显示为这样。 iPhone上有一个NSNumber格式化程序,PHP中有相同的格式化程序。
这格式化$ N号8位小数,然后删除尾随零,最多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";
哇!这是聪明的让我试试吧 – macintosh264
像一个魅力工作非常感谢 – macintosh264
这是否工作,如果数量是40.0012?也解释你的答案多一点,而不是只发布代码 – JPM
使用sprintf()
到数字格式到一定的小数位数:
$decimal_places = 4;
$format = "%.${decimal_places}f";
$formatted = sprintf($format,$number);
对不起,我的问题是说我有数字“4”,我希望它显示为“4.00”,如果我有“2.000000001”,那么它显示为“2.00”或者如果我有“3.2102”它会在iPhone上有一个NSNumber格式化程序,在PHP中有什么相同的内容 – macintosh264
检查数字格式功能:
<?php
$num = 43.43343;
$formatted = number_format(round((float) $num, 2), 2);
?>
这不是一个真正的答案 –
你可以将()数字(http://www.php.net/manual/en/function .round.php),然后用number_format()函数添加格式 –
你应该提供一个代码示例 –
我不明白你为什么要显示数字以达到不一致的准确度。我不明白你在评论中想要描述什么样的模式。
但是,让我们假设您需要以下行为:您希望将数字表示为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;
}
我正在格式化一个比特币金额,女巫计算出小数点后8位,并始终显示至少2位小数位。 – macintosh264
使用的preg_match先手与结束零,然后RTIM它
<?php
$nn = number_format(10.10100011411100000,13);
preg_match('/[0]+$/',$nn,$number);
if(count($number)>0){
echo rtrim($nn,$number[0]);
}
希望它会帮助你。
您如何建议决定给定数字使用的小数位数? – Hammerite
“2.120000001”显示多少个? – CanSpice
对不起,我的问题是说我有号码“4”。我希望它显示为“4.00”,如果我有“2.000000001”,那么它显示为“2.00”或者如果我有“3.2102”它将显示为这样。 iPhone上有一个NSNumber格式化程序,PHP中有相同的格式化程序。 – macintosh264