tofixed()+ 2表现得像tofixed +“2”

时间:2013-07-05 17:48:38

标签: javascript

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

我试图将tofixed值与任何数字相加但是使用上面的代码我被调整为舍入= 12 ....我想知道为什么它不总和以及如何解决它?

这是小提琴example

谢谢。

6 个答案:

答案 0 :(得分:4)

JavaScript没有定点数字。 toFixed returns a string。等效数字是Math.round:

Math.round(1.2) + 2 // 3

答案 1 :(得分:3)

看起来你想要向下舍入?使用Math.floor代替toFixed

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

如果您真的想要使用舍入数字Math.round()

答案 2 :(得分:3)

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

(number + 2).toFixed();

答案 3 :(得分:1)

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

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

答案 4 :(得分:0)

number = 1.2
number= number+2
rounded = number.toFixed() ;

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

答案 5 :(得分:0)

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

$(document).ready(function(){
    number = 1.2
    rounded = parseInt(number.toFixed()) + 2;
    alert(rounded);
})