PHP 数字的最小精度

标签 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

有什么想法吗?

最佳答案

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

关于PHP 数字的最小精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3610924/

相关文章:

php - 正确设置curl php cookie

Haskell:从 ghci 提示符中将表达式读取为整数?

javascript - 为什么 JavaScript 的数字*显示*对于大数字不准确?

php - 重定向后显示消息

php - php和mysql中的链接

java - 是什么导致我的结果打印结果与应有的相反?

python - 如何将一串数字转换为一位整数列表?

java - 如何在 java 中使用 Math.round() 获取 =ROUND(A8/1000,2)* 1000(excel 公式)输出

sql-server - SQL Server 查询/函数四舍五入到一半

php - 初学者PHP/mySQL问题