gpt4 book ai didi

javascript - 存储信息(如果 Number 是浮点型或整数)

转载 作者:行者123 更新时间:2023-12-03 12:02:42 26 4
gpt4 key购买 nike

我有一个类似 JSON 的输入格式:

{
"a": 2,
"b": 0.0,
"c": "hi"
}

有浮点值(始终带小数点)和整数值(无小数点)。我需要用 Javascript 解析它,使用它,然后将其写回到文件中(带有小数点的 float )。

将其解析为经典对象很简单,但在编码回来时我需要区分浮点型和整数型。我目前使用这个丑陋的 JS 结构:

{
type: "Object",
value: {
a: {type: "Integer", value: 2},
b: {type: "Float" , value: 0},
c: {type: "String" , value: "hi"}
}
}

我想简化我的结构。有没有办法区分 JS Numbers 中的 float 和整数?比如“免费位”之类的?或者也许是一些聪明的技巧?

例如如果我所有的输入数字始终为正数,我可以将整数存储为正数,将 float 存储为负数。但他们不是:(还有其他想法吗?

最佳答案

在 JavaScript 中,所有数字在内部都以 64 位浮点形式表示。 JavaScript 中根本不存在 floatinteger 这样的东西,只有 Number的。因此,如果您想将信息传递给另一个系统,了解其是浮点型还是整数型,则必须在其他地方对其进行编码,类似于您已有的结构.

在 JavaScript 中不可能检测数字文字是否用小数部分表示。最接近的结果是测试一个数字是否有小数部分。使用模运算符 (%) 可以轻松实现这一点:

2 % 1 === 0
> true

2.0 % 1 === 0
> false

但是,这仍然无法区分数字形式,例如 0.00:

0 % 1 === 0
> true

0.0 % 1 === 0
> true

如果您的数字实际上存储为字符串,您可以简单地测试 . 字符:

"0".indexOf(".") === -1
> true

"0.0".indexOf(".") === -1
> false

关于javascript - 存储信息(如果 Number 是浮点型或整数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25341466/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com