PHP上的最小精度

Mik*_*tar 5 php numbers rounding

我有一个来自数据库的数字列表,范围从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

有任何想法吗?

mat*_*tja 7

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";
}
Run Code Online (Sandbox Code Playgroud)

输出:

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
Run Code Online (Sandbox Code Playgroud)