C# 计算错误
在C#编程中,我与操作员一起工作,但我陷入了以下错误,即小费和税款的价值与预期不符 我的控制台应用程序的代码:C# 计算错误,c#,operators,C#,Operators,在C#编程中,我与操作员一起工作,但我陷入了以下错误,即小费和税款的价值与预期不符 我的控制台应用程序的代码: class OPerators { static void Main(string[] args) { Console.WriteLine("Enter the MealCost"); double mealCost = double.Parse(Console.ReadLine()); int tipPercent =
class OPerators
{
static void Main(string[] args)
{
Console.WriteLine("Enter the MealCost");
double mealCost = double.Parse(Console.ReadLine());
int tipPercent = int.Parse(Console.ReadLine());
int taxPercent = int.Parse(Console.ReadLine());
// calulation Part
// here i am getting the value of tip is 0.
double tip = mealCost * (tipPercent / 100);
// here also value of tax is 0.
double tax = mealCost * (taxPercent / 100);
double totalCost = mealCost + tip + tax;
Console.WriteLine(Math.Round(totalCost));
Console.ReadLine();
}
}
如何获取tip
和tax
的值
我试过:
double a = (tipPercent /100);
tip = mealCost *a;
但它不工作。使用以下命令将括号内计算的输出更改为浮点数:
double tip = mealCost * (tipPercent / 100.0);
double tax = mealCost * (taxPercent / 100.0);
您将整数除以100,如果数字小于100,它将始终返回0。将tipPercent和taxPercent类型转换为double将解决您的问题
double tip = mealCost * ((double)tipPercent / 100);
希望这有帮助需要注意的是,
十进制
应该用于货币值。关于您的问题本身,您可以使用以下代码以获得预期结果:
Console.WriteLine("Enter the MealCost");
decimal mealCost = Decimal.Parse(Console.ReadLine());
int tipPercent = Int32.Parse(Console.ReadLine());
int taxPercent = Int32.Parse(Console.ReadLine());
// calulation Part
decimal tip = mealCost * ((decimal)tipPercent / 100m);
decimal tax = mealCost * ((decimal)taxPercent / 100m);
decimal totalCost = mealCost + tip + tax;
Console.WriteLine(Math.Round(totalCost));
Console.ReadLine();
整数算术中可能重复的
20/100
是0
。一致地切换到double
。另外请注意,decimal
更适合表示货币值。请解释您的程序是如何错误的。例如,与实际结果相比,预期结果是什么?您不需要按小数点进行转换和偏差。只要一个数字不是整数,它就会选择十进制除法。感谢它的工作原理,我把double放在100除法的孔表达式前面。