如果数字的位数不超过6位且小数位数不超过2位,我需要返回验证检查(布尔值)。
例如:
1 = valid
10 = valid
111111 = valid
111111.11 = valid
1111111.11 = INVALID
1.111 = INVALID
查看堆栈溢出我只能找到输入自动舍入的答案(不是我想要的)或小数位必须等于2个小数位(最多2个)。
答案 0 :(得分:6)
显然,你需要
function valid(n) {
return no_more_than_six_digits(n) && no_more_than_two_decimal_places(n);
}
那么我们如何定义这些功能呢?
function no_more_than_six_digits (n) { return n < 1e7; }
function no_more_than_two_decimal_places(n) { return Math.floor(n * 100) === n * 100; }
答案 1 :(得分:2)
此功能应该有效
function t(x) {
return x < 1000000 && Math.floor(x*100)/100 == x;
}
实施例 http://jsfiddle.net/q6511o17/1/
但是检查torazaburos的答案是一个更完整的解决方案和解释。
答案 2 :(得分:0)
丑陋,但有效。
function validate(x) {
return Math.floor(x) < 1000000 &&
(x.toString().indexOf('.') == -1 ?
true : x.toString().split('.')[1].length < 3)
}