gpt4 book ai didi

javascript - 在 Javascript 中验证浮点精度

转载 作者:行者123 更新时间:2023-11-30 10:16:29 26 4
gpt4 key购买 nike

我正在尝试使用 Javascript 来验证用户输入的是有效的货币(美元和美分)金额,小数点右边不超过两位数。

左移,然后执行模 1 失败,因为固有的浮点问题:

(parseFloat("19.99") * 100) % 1 // Returns 0.9999999999997726

我知道 BigDecimal 库,但我不确定转换为 BigDecimal 然后进行验证是否是正确的方法,因为它可能掩盖无效输入和浮点问题。

就目前而言,我的解决方法是针对以下正则表达式测试原始(字符串)输入:

/^\d*((\.\d{0,2})?)$/

这是否足以保证输入是有效的货币格式 float ?如果没有,是否有基于数学的方法来进行验证?

最佳答案

如果你不需要使用 RegExp,让 JS 的数学来完成繁重的工作:

 var n=myInput.value;
if(!n || +(+n || 0).toFixed(2) != +n) {
alert("real numbers only!");
myInput.select();
}

验证例程部分是编造的,用户体验很差,但数学是扎实的,防弹的。

关于javascript - 在 Javascript 中验证浮点精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23412594/

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