Javascript always round up to X decimal places
本问题已经有最佳答案,请猛点这里访问。
我需要编写一个始终向上取整的函数,但根据传递给函数的是0、1还是2,可以向上取整到小数点后0、1或2。
例子…
四舍五入到小数点后0位:13.4178=14
四舍五入到小数点后1位:13.4178=13.5
四舍五入到小数点后两位:13.4178=13.42
我找到了
你可以用一个系数乘以十和所需的十进制数的幂,然后把它四舍五入并调整圆点。
1 2 3 4 5 6 7 | function up(v, n) { return Math.ceil(v * Math.pow(10, n)) / Math.pow(10, n); } console.log(up(13.4178, 0)); console.log(up(13.4178, 1)); console.log(up(13.4178, 2)); |
使用辅助乘法和除法:
1 2 3 4 | function MyCeil(number, digits) { var factor = Math.pow(10, digits); return Math.Ceil(number*factor) / factor; } |
只需乘以,四舍五入并除以10^dec的系数。
1 2 3 4 5 6 7 8 9 10 11 | function roundUp( num, dec ) { // raise by dec, default to 0 decimals at the and. const d = Math.pow( 10, ( dec || 0 ) ); // Multiply, round up and divide back so your decimals remain the same return Math.ceil( num * d ) / d; } console.log( roundUp( 1.2345 ) ); console.log( roundUp( 1.2345, 1 ) ); console.log( roundUp( 1.2345, 2 ) ); console.log( roundUp( 1.2345, 3 ) ); |