我需要验证一些以十进制表示的输入数字。这些数字是用于记录时间,包括小时数和小时的小数部分,例如1.25、2.50或3.00。
我需要强制要求输入小数部分为.00、.25、.50或.75。
我可以将十进制值转换为字符串,然后查看它有多少位小数和这些小数的值,或者编写一个正则表达式或类似的东西会更好呢?
Ryan
我需要验证一些以十进制表示的输入数字。这些数字是用于记录时间,包括小时数和小时的小数部分,例如1.25、2.50或3.00。
我需要强制要求输入小数部分为.00、.25、.50或.75。
我可以将十进制值转换为字符串,然后查看它有多少位小数和这些小数的值,或者编写一个正则表达式或类似的东西会更好呢?
Ryan
value % 0.25 == 0
。0.25m
而不是0.25
。双精度浮点数是近似值,不应该与等式检查一起使用。 - undefined你可以使用正则表达式^\d*\.(00|25|50|75)$
。
var number = 1.25;
if((number*100)%25==0) // valid
else // not valid
编辑: 或者直接:
var number = 1.25;
if(number%0.25==0) // valid
else // not valid
(感谢在评论区指出)
m
后缀),请使用decimal
而不是double
。使用double
进行浮点数运算会产生近似值。 - undefined
.00 .25 .50 .75
吗? - undefined