首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Javascript将JSON中的浮点数转换为小数点后两位

如何使用Javascript将JSON中的浮点数转换为小数点后两位
EN

Stack Overflow用户
提问于 2020-06-19 09:22:59
回答 5查看 7.9K关注 0票数 5

我有一个包含float类型编号的JSON文件。在使用react应用程序中的文件之前,我想将它们转换为小数点后的两位。我知道我需要使用number.toFixed(2)来实现这一点。我如何在JSON文件中实现这一点?文件的示例:

代码语言:javascript
复制
[
{
    "module": "prado2",
    "current_value": 3437.0,
    "value_avg": 3436.5,
    "value_avg_plus_stdv": 3457.7132034355964,
    "value_avg_minus_stdv": 3415.2867965644036,
},
{
    "module": "prado2",
    "current_value": 3437.0,
    "value_avg": 3436.5,
    "value_avg_plus_stdv": 4457.7132034355964,
    "value_avg_minus_stdv": 3425.2867965644036,
}
]

最后的结果应该是:

代码语言:javascript
复制
[
{
    "module": "prado2",
    "current_value": 3437.0,
    "value_avg": 3436.5,
    "value_avg_plus_stdv": 3457.71,
    "value_avg_minus_stdv": 3415.29,
},
{
    "module": "prado2",
    "current_value": 3437.0,
    "value_avg": 3436.5,
    "value_avg_plus_stdv": 4457.71,
    "value_avg_minus_stdv": 3425.29,
}
]

谢谢!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2020-06-19 09:36:22

您可以将reviver函数传递给JSON.parse方法,以规定如何在返回之前转换解析产生的值:

代码语言:javascript
复制
JSON.parse(jsonString, (key, value) =>
  typeof value === "number" ? Math.round(value * 100) / 100 : value
);

Math.round(value * 100) / 100替换为100) / 100+value.toFixed(2)或其他您想要的方法。

更多关于JSON.parse的信息

票数 5
EN

Stack Overflow用户

发布于 2020-06-19 09:29:45

使用toFixed

像这样的

代码语言:javascript
复制
[
{
    "module": "prado2",
    "current_value": 3437.0,
    "value_avg": 3436.5,
    "value_avg_plus_stdv": 3457.7132034355964,
    "value_avg_minus_stdv": 3415.2867965644036,
},
{
    "module": "prado2",
    "current_value": 3437.0,
    "value_avg": 3436.5,
    "value_avg_plus_stdv": 4457.7132034355964,
    "value_avg_minus_stdv": 3425.2867965644036,
}
].map(x => ({
    ...x,
    value_avg_plus_stdv: +x.value_avg_plus_stdv.toFixed(2),
    value_avg_minus_stdv: +x.value_avg_minus_stdv.toFixed(2)
}))

编辑- toFixed将返回一个字符串,因此添加一个+将其转换为数字。

票数 1
EN

Stack Overflow用户

发布于 2020-06-19 09:37:11

您需要循环对象数组,并在每个number属性上应用您提到的函数。

首先,您需要解析该JSON以获取JavaScript对象,然后应用类似于以下代码片段的内容:

代码语言:javascript
复制
const newArray = yourArray.map((obj) => ({
      ...obj,
      value_avg_plus_stdv: +obj.value_avg_plus_stdv.toFixed(2),
      value_avg_minus_stdv: +obj.value_avg_minus_stdv.toFixed(2),
    }));

toFixed()上的+将将字符串转换为数字

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62467154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档