【发布时间】:2013-05-22 13:53:15
【问题描述】:
我注意到如果我使用 JavaScript:
var dict = { "foo" : 1.0 };
当检索dict 时,我会得到:
{ foo : 1 }
这背后的原理是什么?避免它的首选方法是什么(我目前将1.0 转换为字符串)?
【问题讨论】:
标签: javascript casting floating-point integer implicit-conversion
我注意到如果我使用 JavaScript:
var dict = { "foo" : 1.0 };
当检索dict 时,我会得到:
{ foo : 1 }
这背后的原理是什么?避免它的首选方法是什么(我目前将1.0 转换为字符串)?
【问题讨论】:
标签: javascript casting floating-point integer implicit-conversion
JavaScript 不会将浮点数转换为整数。您看到的是某些诊断工具的行为,无论您使用什么来查看该变量的值。 JavaScript 数字始终是双精度浮点数,除了在一些按位运算的中间(这是一种瞬态条件)。
因为所有数字都是浮点数,所以在将变量初始化为没有小数部分的值时,不必使用显式小数。也就是说,1 和 1.0 在 JavaScript 程序中是完全相同的值。
【讨论】:
double d = 1; 有效,但不是相反:int i = 1.2;
1 将产生与 1.0 相同的值。
json.getFloat()。