是我还是我不能总结这些?

时间:2013-02-01 10:24:22

标签: javascript sum

早上好/下午/晚上:)。

我有两个整数,我想把它们变成浮点数,用4个十进制数字在GPS坐标上使用它们:

var z = y.toFixed(4);
var p = x.toFixed(4);

但是有一种情况困扰着我,那就是这些'z'和'p'之间的总和:

var t = z + p;

在此指令之后,我想在屏幕上打印结果,其中包含一些常用功能:

document.write(z);  document.write("<br />");
document.write(t);
document.write("<br />");   
document.write("<br />");

我得到的结果是:

0.0000
0.0000300.0000

1.0000
1.0000300.0000

2.0000
2.0000300.0000

但我真正想要的是:

300.0000
301.0000
302.0000

毕竟,我如何总结'z'和'p'? :S

Noob问题,我知道:S。

亲切的问候, 萨姆

6 个答案:

答案 0 :(得分:6)

这是因为.toFixed()返回String个对象而不是Number,因此+运算符会执行连接。

相反,您应首先添加实际数字,然后然后执行.toFixed()以“舍入”结果以进行显示。

var t = (x + y).toFixed(4);
document.write(t);

答案 1 :(得分:3)

我认为你想要的是:

var t = x + y;
var p = t.toFixed(4);
document.write(p);

答案 2 :(得分:2)

试试这个

var t = (x + y).toFixed(4);

fiddle here

答案 3 :(得分:1)

JavaScript方法toFixed将您的号码转换为字符串。因此,当您执行操作z + p时,它实际上是字符串连接而不是添加数字。您可以先添加您的号码,然后再应用toFixed

答案 4 :(得分:1)

toFixed()返回一个字符串,这意味着当您使用var t = z + p时,您正在查询字符串。您需要先对坐标求和,然后调用toFixed()

答案 5 :(得分:-2)

p多少钱?你在连接字符串吗?

尝试使用var t = parseFloat(z) + parseFloat(p);