javascript - 如何使用 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,
}
]
谢谢!
解决方案
您可以将 reviver 函数传递给该JSON.parse
方法,以规定在返回之前如何转换最初通过解析产生的值:
JSON.parse(jsonString, (key, value) =>
typeof value === "number" ? Math.round(value * 100) / 100 : value
);
替换Math.round(value * 100) / 100
为Math.round((value + Number.EPSILON) * 100) / 100或+value.toFixed(2)或您希望的其他方法。
更多关于JSON.parse
推荐阅读
- python - 将python中的列表分成元组
- wix - 使用 Wix 将整个目录添加到 MSI 数据库的规范方法是什么?
- docker - 码头工人。无法执行从主机复制到映像的文件
- java - 在 bitbucket api 方法中从 InputStream 中读取内容
- javascript - 你如何在javascript中通过其内部文本单击按钮?
- sql - Oracle:如何计算两个日期之间数据库中的插入次数
- sapui5 - 格式化程序传递静态值
- powershell - 如何获取站点的物理路径属性
- angular - Angular ErrorHandler 传递了不正确的数据
- mysql - 在 Rails 应用程序中使用 activerecord 处理 MySQL 故障转移(主/从角色切换)