0

在我的网络应用程序中,我正在使用 javascript 进行简单的数学计算,并且必须在页面中显示结果。

结果可以是十进制值或整数,所以目前我正在使用该toFixed方法来限制可能存在的十进制密码。

显然,即使值是整数,使用toFixed(2)I 总是会得到类似的结果。1.00所以我想找到一种方法来避免当值不是浮点数时使用十进制密码。是否有任何方法或实用功能来实现这一点?

4

4 回答 4

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
于 2013-11-12T15:34:53.587 回答
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
于 2013-11-12T15:37:33.090 回答
1

删除“.00”

yourNumber.toFixed(2).replace(/\.00$/,"");

将尾随零替换为空,并在没有小数时删除小数点。

yourNumber.toFixed(2).replace(/\.?0+$/,"");
于 2013-11-12T15:40:00.073 回答
0

一个选项可以是以前通过检查检查我的结果是否为整数值:

result % 1 === 0

那么如果这个条件为真,我可以避免toFixed在我的结果上使用。

于 2013-11-29T09:00:38.540 回答