首页 > 解决方案 > 如何使用 Javascript 将 JSON 中的浮点值转换为小数点后两位

问题描述

我有一个包含类型数的 JSON 文件float。在反应应用程序中使用文件之前,我想将它们转换为小数点后两位。我知道我需要使用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,
}
]

谢谢!

标签: javascriptreactjs

解决方案


您可以将 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


推荐阅读