早上好/下午/晚上:)。
我有两个整数,我想把它们变成浮点数,用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。
亲切的问候, 萨姆
答案 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)
答案 3 :(得分:1)
JavaScript方法toFixed
将您的号码转换为字符串。因此,当您执行操作z + p
时,它实际上是字符串连接而不是添加数字。您可以先添加您的号码,然后再应用toFixed
。
答案 4 :(得分:1)
toFixed()
返回一个字符串,这意味着当您使用var t = z + p
时,您正在查询字符串。您需要先对坐标求和,然后调用toFixed()
。
答案 5 :(得分:-2)
p
多少钱?你在连接字符串吗?
尝试使用var t = parseFloat(z) + parseFloat(p);