我在实现检查值方面遇到一些麻烦:
我有一个输入,用户可以增加。当此输入达到100的整数倍(100,200,300,400 .....)时,它将更新屏幕上显示的计数。
我的原始代码是:
if(Number.isInteger(actualValue/100)){
input.base += 1;
}
问题在于,现在用户将增加1或2或3等。使用此实际代码,如果我是99,而增加2,则不会更新输入。
如何检查该值是否等于或大于100的倍数?
他也可以递减,因此我必须执行相反的操作并将输入更新为-1。
我不知道该去哪里。任何建议都将受到欢迎!
编辑:
一个快速的JSfiddle可以让您知道发生了什么:https://jsfiddle.net/4h1u6d2x/
尝试升至10,然后您可以尝试从19升至21,然后查看它是否未更新!
答案 0 :(得分:1)
如果该值仅依赖的actualValue
,则可以采取整数值。
input.base = Math.floor(actualValue / 100);
答案 1 :(得分:1)
我不确定这99的来源,但是您可以从技术上遍历增加/减少的金额,从您提到的99中增加或减少(假设正在运行的总计被保存在某个地方),然后检查查看AT ANY POINT的返回值是否可以被100整除。
这样的事情。
让user_input = 8 var input = 0;
for (let i = 0; i < user_input; i++){
let sum = i + 93;
if (sum % 100 === 0){
input++
break
}
}
console.log(输入)
这样,您将检查每个可能的和/差,而不管用户增加或减少输入的次数。
答案 2 :(得分:1)
您正在做的事情和您实际想要实现的目标似乎是不同的。
如果您只想计算实际值比gap
大多少倍,那么您可以按照Nina所说的做:
input.base = Math.floor(actualValue / 100);
另一方面,如果您想被动地增加基数,则应保持先前的状态。您也可以通过这种方式实现减量。
let changeIndex = 0;
if (changeIndex <= actualValue + gap) {
changeIndex += gap;
input.base += 1;
}
if (changeIndex > actualValue) {
changeIndex -= gap;
input.base -= 1;
}