在我的网络应用程序中,我正在使用javascript进行简单的数学计算,我必须在页面中显示结果。
结果可以是十进制值或整数,所以目前我正在使用toFixed
方法来限制可能存在的十进制密码。
显然,使用toFixed(2)
我总是得到类似1.00
的内容,即使该值是整数。因此,当值不是浮点数时,我想找到一种避免十进制密码的方法。
是否有任何方法或实用功能来实现这一目标?
答案 0 :(得分:1)
从mootools尝试Number.round(注意我很快将它改编成了我可能遗漏的东西):
var round = function (num, precision){
precision = Math.pow(10, precision || 0).toFixed(precision < 0 ? -precision : 0);
return Math.round(num * precision) / precision;
}
一些测试:
round(5, 2) // => 5
round(5.9, 2) // => 5.9
round(5.005, 2) // => 5.01
round(5.132, 2) // => 5.13
答案 1 :(得分:1)
JavaScript几乎已经为您处理了它。您可以使用toFixed
然后将其强制转换为数字(因为toFixed
返回一个字符串):
var a = 1, b = 1.1111111;
console.log(+(a + b).toFixed(2)); // 2.11
var a = 1, b = 1;
console.log(+(a + b).toFixed(2)); // 2
答案 2 :(得分:1)
删除“.00”
yourNumber.toFixed(2).replace(/\.00$/,"");
用任何内容替换尾随零,并删除小数点,没有小数。
yourNumber.toFixed(2).replace(/\.?0+$/,"");
答案 3 :(得分:0)
选项可以通过检查:
预先检查我的结果是否为整数值result % 1 === 0
然后,如果这个条件为真,我可以避免在我的结果上使用toFixed
。