C# 如何在十进制和双精度之间除法
我需要将282.48常数除以十进制变量消耗,所以我尝试C# 如何在十进制和双精度之间除法,c#,C#,我需要将282.48常数除以十进制变量消耗,所以我尝试 Console.WriteLine("Your fuel consumption rate is " + Math.Round(consumption, 2) + "lt/100km or " + (282.48/consumption) + "gpm"); 但是VisualStudio告诉我 /不能应用于双精度和十进制 我该怎么做才能让这个工作>282.48/消费试试这个 Console.WriteLine("Your fuel co
Console.WriteLine("Your fuel consumption rate is " + Math.Round(consumption, 2) + "lt/100km or " + (282.48/consumption) + "gpm");
但是VisualStudio告诉我
/不能应用于双精度和十进制
我该怎么做才能让这个工作>282.48/消费试试这个
Console.WriteLine("Your fuel consumption rate is " + Math.Round(consumption, 2) + "lt/100km or " + (282.48/(decimal)consumption) + "gpm");
这会奏效的
decimal consumption = 282.48m;
Console.WriteLine("Your fuel consumption rate is " + Math.Round(consumption, 2) + "lt/100km or " + (282.48m / consumption) + "gpm");
通过在c中添加一个m-282.48m/consumpion将282.48标记为十进制值。默认情况下,除非您明确指定,否则十进制常量是双数据类型。您可以将数字转换为十进制或使用表示十进制的M后缀 例如,下面的方法应该有效
282.48M/consumption
将双变量强制转换为十进制
decimal consumptionValue = System.Convert.ToDecimal(consumption);
Console.WriteLine("Your fuel consumption rate is " + Math.Round(consumption, 2) + "lt/100km or " + (282.48/consumptionValue ) + "gpm");
正如您在文档中看到的,浮点和十进制除法有3种用法
float operator /(float x, float y);
double operator /(double x, double y);
及
您的除法尝试双精度/十进制,因为没有任何后缀,282.48默认为双精度,这是不可用的
您可以显式地将您的消费量转换为两倍于
(282.48 / (double)consumption)
请试着研究一下你的问题,然后再发布将你的报价复制到谷歌为我带来970万条结果。。。上面是重复的。。
(282.48 / (double)consumption)