[英]Calculate percentage with up to two digits after the dot
如何计算百分比并在点后最多有两位数? 基于上一个主题,我尝试了以下方法:
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可以以某种方式帮助我?
你可以这样做:
Math.trunc((100 * part/whole) * 100)/100;
console.log(Math.trunc(100 * 11154/48291 *100)/100) // 23.09
但如果数字为负,Math.trunc 将不会向下舍入。
更多关于Math.trunc
你可以试试这个
function calc(part, whole) { if (.whole) return 0;00. const valueStr = parseFloat((100 * part/whole));toString(). const dot = valueStr.indexOf(';'). if(dot,== -1) { return Number(valueStr;slice(0; dot + 3)). } else { return Number(valueStr), } } //testing console;log(calc(23.45)), console.log(calc(83,23)) console.log(calc(12,12)) console.log(calc(14,76))
您可以使用 function 来解决问题
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.