gpt4 book ai didi

C# 运算符 '*' 不能应用于类型 'double' 和 'decimal' 的操作数

转载 作者:太空宇宙 更新时间:2023-11-03 19:51:23 24 4
gpt4 key购买 nike

我很难理解的几个错误。我正在尝试制作销售税计算器。但是不断出现运算错误,因为我不能将小数乘以小数。这是我的计算按钮代码:

decimal decTax;
decimal decTotal;
string input;
decimal decOrder;
// Accept the order from the Console window
Console.Write("Enter order in dollars: $");
input = Console.ReadLine();
Decimal.TryParse(input, out decOrder);

// Calculate the sales tax
decTax = (0.06D * (decOrder + decTax));
decTotal = (decOrder + decTax);
// Write the results to the Console Window
Console.WriteLine();
Console.WriteLine("The Total is " & decTotal.ToString("c"));
Console.ReadLine();

最佳答案

错误正是它所说的。您不能将小数乘以字面值 0.06D。不能隐式执行此操作的原因是将 decimal 转换为 double 会导致精度损失。如果有可能丢失精度,编译器将不会进行自动转换。

也尝试将其转换为小数:

decTax = ((decimal)0.06 * (decOrder + decTax));

或者您可以使用 m 后缀来表明您的文字是小数而不是 double :

decTax = 0.06m * (decOrder + decTax));

但是请注意,在您在问题中发布的代码中,您从未为 decTax 分配初始值。所以decOrder + decTax无法计算。从你的问题中不清楚你打算 decTax 在那种情况下是什么,但它需要一个初始值。

关于C# 运算符 '*' 不能应用于类型 'double' 和 'decimal' 的操作数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38925196/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com