你能四舍五入一个数字在javascript小数点后1个字符(适当四舍五入)?
我尝试了*10,四舍五入,/10,但它在int的末尾留下了两个小数。
你能四舍五入一个数字在javascript小数点后1个字符(适当四舍五入)?
我尝试了*10,四舍五入,/10,但它在int的末尾留下了两个小数。
当前回答
Math.round( mul/count * 10 ) / 10
Math.round(Math.sqrt(sqD/y) * 10 ) / 10
谢谢
其他回答
var num = 34.7654;
num = Math.round(num * 10) / 10;
console.log(num); // Logs: 34.8
var number = 123.456;
console.log(number.toFixed(1)); // should round to 123.5
数学。Round (num * 10) / 10工作,这里是一个例子…
var number = 12.3456789
var rounded = Math.round(number * 10) / 10
// rounded is 12.3
如果你想让它有一个小数点,即使它是0,然后加…
var fixed = rounded.toFixed(1)
// fixed is always to 1 d.p.
// NOTE: .toFixed() returns a string!
// To convert back to number format
parseFloat(number.toFixed(2))
// 12.34
// but that will not retain any trailing zeros
// So, just make sure it is the last step before output,
// and use a number format during calculations!
编辑:添加圆与精度功能…
使用这个原理,作为参考,这里有一个方便的小圆函数,它需要精度…
function round(value, precision) {
var multiplier = Math.pow(10, precision || 0);
return Math.round(value * multiplier) / multiplier;
}
... 使用……
round(12345.6789, 2) // 12345.68
round(12345.6789, 1) // 12345.7
... 默认舍入到最接近的整数(精度为0)…
round(12345.6789) // 12346
... 可以四舍五入到最接近的10或100等…
round(12345.6789, -1) // 12350
round(12345.6789, -2) // 12300
... 正确处理负数……
round(-123.45, 1) // -123.4
round(123.45, 1) // 123.5
... 并且可以与toFixed结合使用,以一致的格式作为字符串…
round(456.7, 2).toFixed(2) // "456.70"
Angular的小过滤器,如果有人想要的话:
angular.module('filters').filter('decimalPlace', function() {
return function(num, precision) {
var multiplier = Math.pow(10, precision || 0);
return Math.round(num * multiplier) / multiplier;
};
});
使用if via:
{{model.value| decimalPlace}}
{{model.value| decimalPlace:1}}
{{model.value| decimalPlace:2}}
:)
如果你的方法不起作用,请发布你的代码。
然而,你可以完成舍入任务如下:
var value = Math.round(234.567*100)/100
234.56英镑可以吗
类似的
var value = Math.round(234.567*10)/10
会给出234.5
通过这种方式,您可以使用一个变量来代替前面使用的常量。