网站搜索

javascript - JSON stringify 将浮点数转换为整数


我正在使用 Node.js 和内置的 JSON 对象将一个 JSON 对象转换为字符串。在该对象中是

{ 
    weight : 1.0
}

然而,当我将其字符串化并写入文件时,输出是 weight : 1。

答案#1

正如在对类似问题的回答中以及在这个 MSDN 页面上所指出的:

在 JavaScript 中没有所谓的整数。JavaScript 中的数字是“采用双精度 64 位格式的 IEEE 754 值”。

打开你的网页浏览器的控制台并输入 1.0。你会看到 1 被打印出来。JavaScript 中的所有数字都是浮点数,所以你的序列化器只是选择省略不必要的精度。

答案#2

实际上你的问题不大,1 == 1.0 == 1.00 在 Javascript 中是成立的,如果你有一个浮点数值比如 1.55,那么字符串化会给你相同的 1.55 而不是 1.. 即便如此,如果你想写成 1.0,可以把值转换为字符串

我的意思是用双引号将值括起来

{ 
    weight : "1.0"
}