2010-09-12 65 views
6

在JavaScript中是有效的结束数字文本以点整数,像这样......为什么整数字面值后跟一个点是JavaScript中的有效数字文字?

x = 5.; 

什么是有这个符号的意义呢?是否有理由把这个点放在最后,如果没有,为什么这个表示法首先被允许?

更新:好吧,因为你提到漂浮物和整数......我们在这里讨论JavaScript。在JavaScript中只有一个数字类型是IEEE-754。

55.具有相同的值,这两个值之间没有差异。

+0

更有趣的是,javascript允许'05'和'5'而不是'05.'。 – user113716 2010-09-12 18:36:48

+2

那是因为'0'前缀使它成为一个八进制数,你将如何表达一个八进制浮点数? ;) – 2010-09-12 18:46:58

+0

@Ivo - 啊,的确如此。 '09.'确实有效。谢谢! :o) – user113716 2010-09-12 18:53:31

回答

2

你需要小数点如果你调用一个方法整数:

5.toFixed(n) // throws an error 

5..toFixed(n) // returns the string '5.' followed by n zeroes 

如果不看的权利,(5).toFixed(n),或5.0.toFixed(n),将工作,太。

-1

如果它不是一个整数,而是一个浮点文字呢?

1

这是一个浮点数。与我遇到过的其他语言不同,使用Javascript的全部数字实际上都是64位浮点数。技术上,Javascript中没有本地整数。看到The Complete Javascript Number Reference充分丑陋的故事。

+0

downvoter会关注评论吗? – Asaph 2010-09-12 18:21:11

+0

当然(对不起,我以前没有注意过): *我不认为你回答OP的问题(即关于解析和符号,而不是数字大小) * Javascript的数字被认为是可靠的一个界限,意味着你不需要像往常一样使用浮点数(例如,你可以做10.0/2 == 5,你不应该使用正常的浮点数) – Eric 2011-09-18 12:48:02

2

在这种情况下的正确答案是,它绝对没有区别。

JavaScript中的每个数字都已经是64位浮点数。

的“. syntax”只是在情况下很有用,你可以ommit固定部分,因为它是0

.2 // Will end up as 0.2 
-.5 // Will end up as -0.5 

所以,总体来说,它只是节省了字节,但它使代码的可读性,同时。

+0

非常有意义的是非整数值十进制小数)有点(很明显),整数值没有。所以要么它只是一个像5的整数或它是一个像5.01这样的实数......但为什么是5.允许的?如果在这种情况下点没有区别,那么这个表示法是无用的。那他们为什么要启用这个符号呢? – 2010-09-12 18:57:02

4

我想这只是与其他C类语言的兼容性,其中点是重要的。

+0

我会称之为遗产......但是,这可能是原因。我想,JavaScript的创建者只是复制了C语言的符号,但后来决定只定义一个数字类型(然后没有考虑重新使用该符号)。 – 2010-09-12 19:23:01

相关问题