Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么JavaScript坚持将浮点数转换为整数?_Javascript_Casting_Floating Point_Integer_Implicit Conversion - Fatal编程技术网

为什么JavaScript坚持将浮点数转换为整数?

为什么JavaScript坚持将浮点数转换为整数?,javascript,casting,floating-point,integer,implicit-conversion,Javascript,Casting,Floating Point,Integer,Implicit Conversion,我注意到,如果我在JavaScript中这样做: var dict = { "foo" : 1.0 }; 检索dict时,我将获得: { foo : 1 } 这背后的理由是什么?避免它的首选方法是什么(我目前将1.0转换为字符串)?JavaScript不会将浮点转换为整数。你所看到的是一些诊断工具的行为,不管你用什么来查看变量的值。JavaScript数字总是双精度浮点,除非在一些位操作的中间(这是一个过渡条件)。 因为所有的数字都是浮点数,所以在将变量初始化为没有小数部分的值时,不必使用显

我注意到,如果我在JavaScript中这样做:

var dict = { "foo" : 1.0 };
检索
dict
时,我将获得:

{ foo : 1 }

这背后的理由是什么?避免它的首选方法是什么(我目前将
1.0
转换为字符串)?

JavaScript不会将浮点转换为整数。你所看到的是一些诊断工具的行为,不管你用什么来查看变量的值。JavaScript数字总是双精度浮点,除非在一些位操作的中间(这是一个过渡条件)。
因为所有的数字都是浮点数,所以在将变量初始化为没有小数部分的值时,不必使用显式小数。也就是说,
1
1.0
在JavaScript程序中是完全相同的值。

JavaScript不会将浮点数转换为整数。你所看到的是一些诊断工具的行为,不管你用什么来查看变量的值。JavaScript数字总是双精度浮点,除非在一些位操作的中间(这是一个过渡条件)。
因为所有的数字都是浮点数,所以在将变量初始化为没有小数部分的值时,不必使用显式小数。也就是说,
1
1.0
在JavaScript程序中是完全相同的值。

我实际上在Java应用程序中使用JS对象的JSON表示,如果没有按预期读取浮点值,您可能会遇到一些问题。所以我想这没什么好做的?@adrianp(我不是Java大师,但是)如果你提供一个整数,它不会自动转换成浮点吗?例如,
double d=1工作,但不是相反:
inti=1.2
@adrianp JSON有自己的语法和规则。JSON数字如何转换为Java数据结构取决于Java JSON解析器想要做什么,而这与JavaScript无关。当在JavaScript端解析JSON对象时,
1
将产生与
1.0
@Ian Yes相同的值,这是真的;我不是很清楚,我的问题是当我执行
json.getFloat()
时。我实际上在Java应用程序中使用JS对象的json表示,如果没有按照预期读取浮点值,可能会遇到一些问题。所以我想这没什么好做的?@adrianp(我不是Java大师,但是)如果你提供一个整数,它不会自动转换成浮点吗?例如,
double d=1工作,但不是相反:
inti=1.2
@adrianp JSON有自己的语法和规则。JSON数字如何转换为Java数据结构取决于Java JSON解析器想要做什么,而这与JavaScript无关。当在JavaScript端解析JSON对象时,
1
将产生与
1.0
@Ian Yes相同的值,这是真的;我不是很清楚,我的问题是何时执行
json.getFloat()