2015-07-13 55 views
0

以下是否正确?为什么?JavaScript动态输入int/float

x = 7; 
y = 7.00; 
z = x + y; 
console.log(z); 

结果:

我想到日志结果为 “14.00”。

+0

真的已经在这里回复了这里。 http://stackoverflow.com/questions/3612744/javascript-remove-insignificant-trailing-zeros-from-a-number – EasyBB

+1

JavaScript实际上并没有“int”类型:所有数字都是浮点数。对于货币,您可能想要使用类似'z.toFixed(2)'的东西来进行显示。 – Curt

+0

@Curt:实际上,对于货币来说,最好是用积分值做所有的计算,然后在显示时除以100(当然,你会像显示的那样显示它们)。因为十进制值不精确。即使积分值以浮点形式存储,它们精确到'9007199254740991',不像十进制数字,由于浮点函数的作用,精确度不能精确。 – Amadan

回答

5

99%的真实声明:JavaScript中没有“动态类型int/float”,因为JavaScript中没有整型或浮点数。 console.log将写出最紧凑的表示。实际上,console.log(7.00)显示7

更正确的说法:整数在JavaScript内部可用(主要是位操作的结果),但所有到达您的程序的数字都是浮点数。

最后,没有理由为什么console.log应该显示两位小数,除非最紧凑的表示有两位小数(如7.23)。

+0

如果不是console.log()调用,我在我的Chrome控制台中执行此操作: – Scotty