简单的算术错误javascript

时间:2013-05-30 00:09:51

标签: javascript math jsfiddle

当我执行以下操作时:

    var score = (0.229*5) /
            + (0.237*5) /
            + (0.265*5) /
            + (0.214*5) /
            + (0.055*5);

分数评估为2.478305190973909。但是,如果在一行上执行相同的操作。

var score = (0.229*5) + (0.237*5)+ (0.265*5)  + (0.214*5)  + (0.055*5);

根据我的意愿,评分评估为5.000000000000001

是什么给出的?为什么我不能将操作分成多行?

编辑:

JSFiddle在执行操作时给出了错误:

var score = (0.229*5) 
            + (0.237*5) 
            + (0.265*5) 
            + (0.214*5) 
            + (0.055*5);

http://jsfiddle.net/MSamman/Jdrbq/

但是,这可以通过

来解决
var score = (0.229*5) +
            (0.237*5) +
            (0.265*5) +
            (0.214*5) + 
            (0.055*5);

显然它不喜欢用+开始一行。

3 个答案:

答案 0 :(得分:1)

尝试将其写为

var score = (0.229*5) 
            + (0.237*5) 
            + (0.265*5) 
            + (0.214*5) 
            + (0.055*5);

这似乎对我有用

答案 1 :(得分:1)

消除/运算符(它正在进行除法)

var score = (0.229*5)
            + (0.237*5)
            + (0.265*5)
            + (0.214*5)
            + (0.055*5);

使用//开始单行评论。

;终止了一个语句,尽管JavaScript解释器在某些时候会暗示分号。有关语句终止的详细信息,请参阅http://inimino.org/~inimino/blog/javascript_semicolons

答案 2 :(得分:0)

你可以拆分,只是不要在行的末尾使用/。 Javascript评估其间的一个语句;字符,无论是否为空白字符。