gpt4 book ai didi

javascript - 强制 JSON.stringify 使用十进制表示法

转载 作者:行者123 更新时间:2023-12-05 07:54:24 28 4
gpt4 key购买 nike

当我将数据从客户端发送到服务器时,我使用的框架 (angularjs) 使用 JSON.stringify() 将数据转换为 JSON。 (它可能使用 angular.toJson(),但使用 JSON.stringify() 来完成工作。)我猜 stringify 函数调用 toString () 下面...

问题是非常小和非常大的值然后用科学记数法书写。这对我来说是个问题,因为服务器很难确定如何处理该值,从而导致保存数据时出现问题。我希望将我的对象字符串化为十进制表示形式,例如.0000004 而不是 4e-7

这可能吗?是否可以在全局范围内执行此操作,这样我就不必修改对数据库的每个 POST?

最佳答案

这可能不适用于所有情况,但我用过

JSON.stringifyDecimal = function(...args) {
return JSON.stringify(...args).replace(/[+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,function(match) {
return (parseFloat(match)).toFixed((!match.toUpperCase().includes("E") ? (match.split('.')[1] || []).length : 20)).replace(/([0-9]+(\.[0-9]+[1-9])?)(\.?0+$)/,'$1');
});
};

输入:[1.7e-5,5.6666],[1.8e-3,7.211555],[1.9e-2,2.456]

输出:[[0.000017,5.6666],[0.0018,7.211555],[0.019,2.456]]

此实现允许最多 20 位小数的精度。

关于javascript - 强制 JSON.stringify 使用十进制表示法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31439110/

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