Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将一个数字除以一个百分比_Javascript_Node.js - Fatal编程技术网

Javascript 将一个数字除以一个百分比

Javascript 将一个数字除以一个百分比,javascript,node.js,Javascript,Node.js,我有一个初始值,比如3700,我想把它平均除以一个百分比。我有以下代码: let available=3700,百分比=10 对于(让索引=0;索引${Use}`) log(`Before reduction>${available}`) 可用-=使用 console.log(`After reduction>${available}\n`) }定义use时,只需去掉条件。这应该可以解决它 let available = 3700, percent = 10 let availableBegi

我有一个初始值,比如3700,我想把它平均除以一个百分比。我有以下代码:

let available=3700,百分比=10
对于(让索引=0;索引<10;索引++){
让我们使用=索引==0?(百分比/100)*可用:可用/((百分比-索引)%percent)
log(`Index:${Index}Use>${Use}`)
log(`Before reduction>${available}`)
可用-=使用
console.log(`After reduction>${available}\n`)

}
定义use时,只需去掉条件。这应该可以解决它

let available = 3700, percent = 10
let availableBeginning = available

for (let index = 0; available > 0 ; index++) {
    let use = percent / 100) * availableBeginning

     console.log(`Index: ${index} | Use > ${use}`)

     console.log(`Before reduction > ${available}`)
     available -= use
     console.log(`After reduction > ${available}\n`)
}

这对你的案子有用。我不知道为什么你有可用的/((百分比-指数)%percent)),这基本上就是把你的原始数字除以你想要扣除的百分比,然后取它和原始百分比的模。在本例中,在0之后,你的行为是use=878.75,因为你将3515除以(5-1)%5,其中=4。3515 / 4 = 878.85. 这将相当快地扣除,因为您在每次迭代中将至少1/%的值作为您已经扣除的数字的整数

事实证明,你的使用逻辑实际上是毫无意义的,如果你想在每次迭代中扣除偶数,你不必根据任何逻辑设置它……只要反复计算并扣除你想要的次数

无论如何,解决方案如下:

let available = 3700, percent = 5;
// This is going to be the constant deduction you will continue to use
let deduction = 3700 * (percent / 100);

for (let index = 0; index < 10; index++) {
    console.log(`Index: ${index} | Use > ${deduction}`)

    console.log(`Before deduction > ${available}`)
    available -= deduction
    console.log(`After deduction > ${available}\n`)
}
let available=3700,百分比=5;
//这将是您将继续使用的常量扣减
扣除额=3700*(百分比/100);
对于(让索引=0;索引<10;索引++){
log(`Index:${Index}使用>${reduction}`)
console.log(`Before declusion>${available}`)
可用-=扣除额
console.log(`扣除后>${available}\n`)
}

重要变化:修改了三元操作,改变了回路测试

见下面的工作代码:

let available = 3700, percent = 20

for (let index = 0; index < 100/percent; index++) {
    let use = index == 0 ? (percent / 100) * available : available / (100/percent - index)

    console.log(`Index: ${index} | Use > ${use}`)

    console.log(`Before reduction > ${available}`)
    available -= use
    console.log(`After reduction > ${available}\n`)
}
let available=3700,百分比=20
对于(让指数=0;指数<100/百分比;指数++){
使用=指数==0?(百分比/100)*可用:可用/(100/百分比-指数)
log(`Index:${Index}Use>${Use}`)
log(`Before reduction>${available}`)
可用-=使用
console.log(`After reduction>${available}\n`)
}

您的案例有什么意外行为?预期的行为是什么?为什么你有
(百分比-指数)%percent
-你打算在这里计算什么?^当然也必须同意这个问题。你是想扣减到可用=0还是扣减10次?@Andrew扣减到0所以,扣减10次后,结果应该是零。这有百分比吗?百分比是多少?这是使用百分比的百分比。对我不起作用。您只需保存可用的原始值即可继续获取百分比。我无法保存初始值,因为此数字是动态的。请检查答案。它只是将原始值复制到一个新的变量检查这个注释:没有问题,如果我的数字在最后不是零,我只需要将它平均除以一个固定的百分比。我添加了一个例子,使用了5%的百分比,你没有提到你希望它变为零,或者基本上,直到它不能再扣除吗?这将适用于这种情况。检查此注释:适用于20%,但不适用于5%:/它现在起作用。再查一遍。我从三元数据中删除百分比