use*_*701 2 c# loops while-loop
您好我现在正在使用C#和.NET Framework书进行计算,而我在其中一个练习中遇到了困难
编写C#程序进行更改.输入小于一美元的项目的成本.输出硬币作为更改,使用季度,硬币,镍币和硬币.尽可能使用最少的硬币.例如,如果该项目花费17美分,则变化将是四分之三,一个镍和三个便士
由于我还在尝试掌握c#编程,我提出的最佳方法是使用while循环.
while(costOfItem >= 0.50)
{
costOfItem -= 0.50;
fiftyPence++;
}
Run Code Online (Sandbox Code Playgroud)
我为每个笔20,10,5等都有这些.我正在检查金额是否大于或等于50便士,如果是这样,我从用户给出的金额减少50便士并加1 fiftypence变量.
然后它移动到下一个while循环,我对每个pences都有.问题是,沿着线路的某个环路消失,比如20便士,而costOfItem变成类似"0.1999999999999"的东西,然后它永远不会下降到0,它应该得到正确的变化量.
任何帮助表示赞赏,请不要建议我已经涵盖的复杂程序.
切勿使用double或float进行金钱操作.使用Decimal.对于计算精度的所有其他问题,你必须使用像Double.Epsilon这样的"Double Epsilon Comparison" 来获得相等,大于,小于,小于或等于,大于或等于
| 归档时间: |
|
| 查看次数: |
753 次 |
| 最近记录: |