关于在 C# 中获取故障的程序
Program about getting breakdown in c#
我正在复习明天的考试..我的程序遇到了问题(我需要创建一个程序来显示输入金额的细目..我遇到了问题美分...)
Console.Write("Enter amount: ");
double amt = double.Parse(Console.ReadLine());
thou = (int)amt / 1000;
change = (int)amt % 1000;
fivehun = (int)change / 500;
change = change % 500;
twohun = (int)change / 200;
change = change % 200;
hun = (int)change / 100;
change = change % 100;
fifty = (int)change / 50;
change = change % 50;
twenty = change / 20;
change = change % 20;
ten = (int)change / 10;
change = change % 10;
five = (int)change / 5;
change = change % 5;
one = (int)change / 1;
change = change % 1;
twencents = (int)(change / .25);
change = change % .25; //there was an error here.. starting here
tencents = (int)(change / .10);
change = change % .10;
fivecents = (int)(change / .05);
change = change % .05;
onecent = (int)(change / .01);
change = change % .01;
Console.WriteLine("The breakdown is as follows: ");
Console.WriteLine("Php 1000 ={0} ", thou);
Console.WriteLine("Php 500 ={0} ", fivehun);
Console.WriteLine("Php 200 ={0} ", twohun);
Console.WriteLine("Php 100 ={0} ", hun);
Console.WriteLine("Php 50 ={0} ", fifty);
Console.WriteLine("Php 20 ={0} ", twenty);
Console.WriteLine("Php 10 ={0} ", ten);
Console.WriteLine("Php 05 ={0} ", five);
Console.WriteLine("Php 01 ={0} ", one);
Console.WriteLine("Php 0.25 ={0} ", twencents);
Console.WriteLine("Php 0.10 ={0} ", tencents);
Console.WriteLine("Php 0.05 ={0} ", fivecents);
Console.WriteLine("Php 0.01 ={0} ", onecent);
Console.ReadKey();
错误说我无法将 double 转换为 int,所以我尝试通过转换来转换它
change = (double) change % .25;
还是报错..
使用双变=0;而不是 int change = 0;
已编辑
最初进行双重更改 = 0 并将输入 amt 拆分为 2 个变量
double wholeValues = (int)amt;
double decimalValues = amt - wholeValues;
然后改变
thou = (int)amt / 1000;
change = (int)amt % 1000;
设为
thou = (int)wholeValues / 1000;
change = (int)wholeValues % 1000;
否则此时您将删除小数值
但您缺少对 int 的强制转换
twenty = (int) change / 20;
模块乘以 1 将再次给出相同的值,使用新变量 decimalValues 开始美分计算
one = (int)change / 1;
change = decimalValues * 100;
twencents = (int)(change / 25);
change = change % 25;
tencents = (int)(change / 10);
change = change % 10;
fivecents = (int)(change / 5);
change = change % 5;
如果我们使用带有十进制值的模块,您有时可能会得到不正确的值
例如,对于 .30 美分,它将代表 .25 美分 = 1,0.05 美分 = 0,
.01 美分= 4
终于明白了!
int thou, fivehun, twohun, hun, fifty, twenty, ten, five, one;
double change = 0; // added this one as suggested
Console.Write("Enter amount: ");
double amt = double.Parse(Console.ReadLine());
thou = (int)amt / 1000;
change = amt % 1000; //remove the int (change should be double)
fivehun = (int)change / 500;
change = change % 500;
twohun = (int)change / 200;
change = change % 200;
hun = (int)change / 100;
change = change % 100;
fifty = (int)change / 50;
change = change % 50;
twenty = (int) change / 20; //added int here
change = change % 20;
ten = (int)change / 10;
change = change % 10;
five = (int)change / 5;
change = change % 5;
one = (int)change / 1;
change = change % 1;
int twencents = (int)(change / 0.25);
change = change % 0.25;
int tencents = (int)(change / 0.10);
change = change % 0.10;
int fivecents = (int)(change / 0.05);
change = change % 0.05;
int onecent = (int)(change / 0.01);
change = change % 0.01;
我正在复习明天的考试..我的程序遇到了问题(我需要创建一个程序来显示输入金额的细目..我遇到了问题美分...)
Console.Write("Enter amount: ");
double amt = double.Parse(Console.ReadLine());
thou = (int)amt / 1000;
change = (int)amt % 1000;
fivehun = (int)change / 500;
change = change % 500;
twohun = (int)change / 200;
change = change % 200;
hun = (int)change / 100;
change = change % 100;
fifty = (int)change / 50;
change = change % 50;
twenty = change / 20;
change = change % 20;
ten = (int)change / 10;
change = change % 10;
five = (int)change / 5;
change = change % 5;
one = (int)change / 1;
change = change % 1;
twencents = (int)(change / .25);
change = change % .25; //there was an error here.. starting here
tencents = (int)(change / .10);
change = change % .10;
fivecents = (int)(change / .05);
change = change % .05;
onecent = (int)(change / .01);
change = change % .01;
Console.WriteLine("The breakdown is as follows: ");
Console.WriteLine("Php 1000 ={0} ", thou);
Console.WriteLine("Php 500 ={0} ", fivehun);
Console.WriteLine("Php 200 ={0} ", twohun);
Console.WriteLine("Php 100 ={0} ", hun);
Console.WriteLine("Php 50 ={0} ", fifty);
Console.WriteLine("Php 20 ={0} ", twenty);
Console.WriteLine("Php 10 ={0} ", ten);
Console.WriteLine("Php 05 ={0} ", five);
Console.WriteLine("Php 01 ={0} ", one);
Console.WriteLine("Php 0.25 ={0} ", twencents);
Console.WriteLine("Php 0.10 ={0} ", tencents);
Console.WriteLine("Php 0.05 ={0} ", fivecents);
Console.WriteLine("Php 0.01 ={0} ", onecent);
Console.ReadKey();
错误说我无法将 double 转换为 int,所以我尝试通过转换来转换它
change = (double) change % .25;
还是报错..
使用双变=0;而不是 int change = 0;
已编辑
最初进行双重更改 = 0 并将输入 amt 拆分为 2 个变量
double wholeValues = (int)amt;
double decimalValues = amt - wholeValues;
然后改变
thou = (int)amt / 1000;
change = (int)amt % 1000;
设为
thou = (int)wholeValues / 1000;
change = (int)wholeValues % 1000;
否则此时您将删除小数值
但您缺少对 int 的强制转换
twenty = (int) change / 20;
模块乘以 1 将再次给出相同的值,使用新变量 decimalValues 开始美分计算
one = (int)change / 1;
change = decimalValues * 100;
twencents = (int)(change / 25);
change = change % 25;
tencents = (int)(change / 10);
change = change % 10;
fivecents = (int)(change / 5);
change = change % 5;
如果我们使用带有十进制值的模块,您有时可能会得到不正确的值 例如,对于 .30 美分,它将代表 .25 美分 = 1,0.05 美分 = 0, .01 美分= 4
终于明白了!
int thou, fivehun, twohun, hun, fifty, twenty, ten, five, one;
double change = 0; // added this one as suggested
Console.Write("Enter amount: ");
double amt = double.Parse(Console.ReadLine());
thou = (int)amt / 1000;
change = amt % 1000; //remove the int (change should be double)
fivehun = (int)change / 500;
change = change % 500;
twohun = (int)change / 200;
change = change % 200;
hun = (int)change / 100;
change = change % 100;
fifty = (int)change / 50;
change = change % 50;
twenty = (int) change / 20; //added int here
change = change % 20;
ten = (int)change / 10;
change = change % 10;
five = (int)change / 5;
change = change % 5;
one = (int)change / 1;
change = change % 1;
int twencents = (int)(change / 0.25);
change = change % 0.25;
int tencents = (int)(change / 0.10);
change = change % 0.10;
int fivecents = (int)(change / 0.05);
change = change % 0.05;
int onecent = (int)(change / 0.01);
change = change % 0.01;