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

标签 javascript reactjs

我有一个 JSON 文件,其中包含 float 类型的数字.在 react 应用程序中使用文件之前,我想将它们转换为小数点后两位。我了解我需要使用 number.toFixed(2) 实现这一目标。我怎样才能在 JSON 文件中实现这一点?
文件样本:

[
{
    "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,
}
]

最终结果应该是:
[
{
    "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,
}
]

谢谢!

最佳答案

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

JSON.parse(jsonString, (key, value) =>
  typeof value === "number" ? Math.round(value * 100) / 100 : value
);

替换 Math.round(value * 100) / 100Math.round((value + Number.EPSILON) * 100) / 100+value.toFixed(2)或您希望的其他方法。

更多关于 JSON.parse

关于javascript - 如何使用 Javascript 将 JSON 中的浮点值转换为小数点后两位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62467154/

相关文章:

javascript - 试图理解无法在 javascript 中改变字符串/数字的概念

javascript - three.js 光照似乎没有像我预期的那样工作

javascript - 无法在指令 angular4 中访问此对象

javascript - 我无法使用 Gatsby 动态创建页面

javascript - 类型错误 : unable to create data property ~ React ~ ESLint

javascript - Firebase 存储错误 : 404 - ACCESS_BUCKET

在 ColdFusion 2018 中使用 <cfgrid> 标签的 JavaScript 错误

javascript - 在剑道网格中显示对象内部的对象

reactjs - React Native scrollTo 目标元素

javascript - 如何测试接收事件的函数?