Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.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_If Statement_Conditional Statements - Fatal编程技术网

Javascript 最少数量的硬币,仅使用条件语句

Javascript 最少数量的硬币,仅使用条件语句,javascript,if-statement,conditional-statements,Javascript,If Statement,Conditional Statements,我只需要使用条件语句。我试图计算归还零钱所需的最少硬币数量。我以为我已经做到了,我的代码适用于大多数场景,但我意识到我遇到了如下错误: 输入: 价格:0.90 薪酬:5 输出: 4 x 1美元 1 x 5美分 2 x 2美分 我发现了一个类似的问题-,但答案不能帮助我在代码中克服这个问题。如果您能告诉我我做错了什么,我将不胜感激 let price = 0.90; let paid = 5; let change = paid - price; let counter = 0; change =

我只需要使用条件语句。我试图计算归还零钱所需的最少硬币数量。我以为我已经做到了,我的代码适用于大多数场景,但我意识到我遇到了如下错误:

输入: 价格:0.90 薪酬:5 输出: 4 x 1美元 1 x 5美分 2 x 2美分

我发现了一个类似的问题-,但答案不能帮助我在代码中克服这个问题。如果您能告诉我我做错了什么,我将不胜感激

let price = 0.90;
let paid = 5;
let change = paid - price;
let counter = 0;
change = change*100;

if(change >= 100){
    change = change/100;
    counter = change;
    console.log(counter.toFixed(0) + ' x 1 dollar');
    change = (change * 100) % 100;
} 
if(change >= 50) {
    change = change/50;
    counter = change;
    console.log(counter.toFixed(0) + ' x 50 cents')
    change = (change * 50) % 50;
}
if(change >= 20){
    change = change/20;
    counter = change;
    console.log(counter.toFixed(0) + ' x 20 cents')
    change = (change*20) % 20;
}
if(change >= 10){
    change = change/10;
    counter = change;
    console.log(counter.toFixed(0) + ' x 10 cents');
    change = (change * 10) % 10;
}
if(change >= 5){
    change = change/5;
    counter = change;
        if(counter != 0){
            console.log(Math.floor(counter) + ' x 5 cents');
            change = (change * 5) % 5;
    }
}
if(change >= 2){
    change = change/2;
    counter = change;
        if(counter != 0){
            console.log(Math.floor(counter) + ' x 2 cents');
    }
    change = (change * 2) % 2;
}
if(change >= 1){
    change = change;
    counter = change;
        if(counter != 0){
            console.log(Math.floor(counter) + ' x 1 cent');
    }
    change = (change * 1) % 1;
}



由于浮点运算()的问题,需要对各部分进行舍入以获得整数值

let price=0.90;
让已付=5;
让变化=数学轮(支付*100)-数学轮(价格*100);
设计数器=0;
日志(100*(已付价格),“vs”,更改);
如果(更改>=100){
计数器=数学楼层(更改/100);
控制台日志(计数器+x1美元);
变化%=100;
}
如果(更改>=50){
计数器=数学楼层(更改/50);
控制台日志(计数器+x50美分)
变化%=50;
}
如果(更改>=20){
计数器=数学楼层(更改/20);
控制台日志(计数器+x20美分)
变化%=20;
} 
如果(更改>=10){
计数器=数学楼层(更改/10);
控制台日志(计数器+x10美分);
变化%=10;
}
如果(更改>=5){
计数器=数学楼层(更改/5);
控制台日志(计数器+x5美分);
变化%=5;
}
如果(更改>=2){
计数器=数学楼层(更改/2);
控制台日志(计数器+x2美分);
变化%=2;
}
如果(更改>=1){
控制台日志(数学地板(计数器)+“x1分”);

}
如果
更改>=50
计数器-更改,则会出现输入错误可能应该是
计数器=更改错误修复。但这并不是问题的原因。谢谢你的建设性评论!