javascript - 计算点后最多两位数的百分比
问题描述
如何计算百分比并在点后最多有两位数?基于上一个主题,我尝试了以下方法:
function calc(part, whole) {
if (!whole)
return 0.00;
return parseFloat((100 * part/whole).toFixed(2));
}
但我得到的是:
console.log((100 * 11154/48291).toFixed(2)) // 23.10
console.log((100 * 11154/48291)) // 23.09747157855501
我希望最终结果是23.09
而不是23.10
。我也想返回一个数字而不是一个字符串。该toFixed()
方法四舍五入并返回一个字符串。我该怎么做?也许lodash可以以某种方式帮助我?
解决方案
您可以使用该功能来解决问题
function trunc_to_precision(number, precision) {
numberAsStr = number.toString();
if (!numberAsStr.includes('.')) {
return number;
}
let [entier, decimal] = numberAsStr.split('.');
return parseFloat(entier + '.' + decimal.substring(0,precision));
}
let x = trunc_to_precision(23.09747157855501, 2); // 23.09 as float
推荐阅读
- r - 如何为ggplot创建动态名称?
- javascript - 通过链接自动将事件添加到 Google 日历
- python - python中的UTF-8编码被转换为ASCII?
- html - 容器 div 不会以不同的分辨率留在一边
- android - 在新项目中安装应用程序时会自动授予危险权限 [React Native - Android]
- java - 如何循环播放 MotionLayout 动画?
- java - 如何打印到 Kojo IDE 输出窗格中的同一行?
- python - 如何在python中格式化列表
- navigation - 是否有使用 C++ 开发导航应用程序的平台?
- excel - 复选框可以简单地被具有几乎相同代码的组合框替换吗?还是需要考虑额外的流程?