2

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

我有两个整数,我想把它们变成浮点数,用 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

菜鸟问题,我知道:S。

亲切的问候,山姆

4

6 回答 6

6

那是因为.toFixed()返回一个String对象而不是 a Number,所以+运算符执行连接。

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

var t = (x + y).toFixed(4);
document.write(t);
于 2013-02-01T10:29:16.297 回答
3

我想你想要的是:

var t = x + y;
var p = t.toFixed(4);
document.write(p);
于 2013-02-01T10:28:41.877 回答
2

试试这个

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

在这里摆弄

于 2013-02-01T10:29:04.153 回答
1

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

于 2013-02-01T10:30:19.270 回答
1

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

于 2013-02-01T10:30:32.443 回答
-2

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

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

于 2013-02-01T10:26:24.077 回答