php - 如何根据其输入显示小数位数?
问题描述
我已将 number_format() 函数用于千位分隔,但此函数获取特定的小数位数。但我需要小数位数应该是数字,即传递给函数
应该是这样的。
数字输出
1234 1,234
1234.9 1,234.9
1234.94 1,234.94
解决方案
您可以先使用 number_format(),然后在需要时进行修剪,如下所示:
function formatter($input, $maxDecimals)
{
$number = number_format($input, $maxDecimals);
if ($maxDecimals > 0) {
list($whole, $fraction) = explode(".", $number);
$number = $whole . rtrim("." . $fraction, ".0");
}
return $number;
}
echo formatter(0.0, 6).'<br>';
echo formatter(100.0, 6).'<br>';
echo formatter(100.01, 6).'<br>';
echo formatter(1200.9, 6).'<br>';
echo formatter(1200, 6).'<br>';
echo formatter(1200.9, 6).'<br>';
echo formatter(1234, 6).'<br>';
echo formatter(1234.9, 6).'<br>';
echo formatter(1234.94, 6).'<br>';
修剪将删除最后的任何零和点。上面的代码将返回:
0
100
100.01
1,200.9
1,200
1,200.9
1,234
1,234.9
1,234.94
推荐阅读
- node.js - 如何从 nodejs 服务器订阅 ws websocket 到另一台服务器?
- apache-camel - 如果处理了内部路由中的异常(Apache Camel),则不会执行具有聚合策略的拆分器之后的代码
- android - 在导航架构中是否可以完全替换 ActionBar 菜单?
- android - Android Kotlin ACTION_CREATE_DOCUMENT 提供非工作 URI
- android - Android App默认首先显示登录界面(应用内嵌谷歌自动登录功能)
- powershell - 在线交流:如何列出通讯组的授权发件人(智能方式)
- python - 合并每个文件具有不规则时间戳和不同标题名称的 CSV 列
- javascript - VS代码的简单for循环捷径?Javascript
- arrays - 如何在 Bash 的单行中打印 for 循环的输出
- javascript - 泛化对象的模式或技术