PHP数字的最小精度要求是多少?

5
我有一个数字列表,来自数据库,范围从0.001到10,我需要以最小2位小数的精度显示它们,但没有最大精度要求。
示例数字及其预期转换:
1 -> 1.00 0.1 -> 0.10 0.01 -> 0.01 0.001 -> 0.001 1.234 -> 1.234 0.035 -> 0.035 25.5 -> 25.50
有什么想法吗?
3个回答

8
function min_precision($x, $p)
{
  $e = pow(10,$p);
  return floor($x*$e)==$x*$e?sprintf("%.${p}f",$x):$x;
}

foreach (Array(1,0.1,0.01,0.001,1.234,0.035,25.5) as $x)
{
  echo $x . " -> " . min_precision($x,2) . "\n";
}

输出:

1 -> 1.00
0.1 -> 0.10
0.01 -> 0.01
0.001 -> 0.001
1.234 -> 1.234
0.035 -> 0.035
25.5 -> 25.50

3
$number = split('.', $dbNumber);
if(strlen($number[1]) < 2)
     $resultNumber = number_format($dbNumber,2);
else
     $resultNumber = $dbNumber;

$dbNumber 是从数据库中获取的数字


split() 函数的第一个参数应该是一个正则表达式,而不是一个字符串字面量。如果要使它起作用,可以将其更改为 explode('.', $dbNumber)(PHP 5.3 中最好使用 explode,因为 split 已被弃用),或者使用 split('\.', $dbNumber) - Jason Burbage

-2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接