2
var number = 1.2;
var rounded = number.tofixed() + 2

我试图用任何数字对固定值求和,但使用上面的代码我被舍入 = 12.... 我想知道为什么它不求和以及如何解决它?

这是小提琴的例子

谢谢你。

4

6 回答 6

4

JavaScript 没有定点数。toFixed返回一个字符串。等价的数字是 Math.round:

Math.round(1.2) + 2 // 3
于 2013-07-05T17:52:44.613 回答
3

看起来你想四舍五入?使用Math.floor而不是toFixed.

var number = 1.2;
var floored = Math.floor(number) + 2

如果你真的想要一个四舍五入的数字,请使用Math.round().

于 2013-07-05T17:51:58.247 回答
3

Float.toFixed()返回一个字符串。( docs ) string + an int 会将 int 转换为 string 并将两个字符串连接起来。你想要的是:

(number + 2).toFixed();
于 2013-07-05T17:52:50.527 回答
1

tofixed 方法将答案作为字符串返回,如果要对其进行数字数学运算,则必须将其转换回数字。

var number = 1.2;
var rounded = parseFloat(number.tofixed()) + 2;
于 2013-07-05T17:54:58.203 回答
0

将结果字符串转换为整数:

$(document).ready(function(){
    number = 1.2
    rounded = parseInt(number.toFixed()) + 2;
    alert(rounded);
})
于 2013-07-05T17:54:50.217 回答
0
number = 1.2
number= number+2
rounded = number.toFixed() ;

tofixed 方法将答案作为字符串返回,因此您可以先添加然后四舍五入

于 2013-07-05T17:54:10.250 回答