JavaScript检查值是否优越并遵守倍数

时间:2019-01-28 16:58:03

标签: javascript

我在实现检查值方面遇到一些麻烦:

我有一个输入,用户可以增加。当此输入达到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,然后查看它是否未更新!

3 个答案:

答案 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;
}