我正在使用Google天气XML文件在C#中开发天气应用程序,我在类文件中使用计算时遇到问题.我试图用下面的方法将farenheit转换为celcius:
public static class Helper
{
public static decimal CalculateTemp(decimal input)
{
return Math.Round((input - 32) * 5 / 9 / 1.0) * 1.0 + "°C";
}
}
Run Code Online (Sandbox Code Playgroud)
"输入"是调用天气数据的地方,例如最高温度.今天的.我在编译时遇到以下错误:
错误23:'Weather.Helper.CalculateTemp(decimal)'的最佳重载方法匹配有一些无效的参数
错误24:参数1:无法从'double'转换为'decimal'
错误25:运算符'/'不能应用于'decimal'和'double'类型的操作数
我不知道如何解决这个问题..
不要decimal
用于温度,double
就足够了.
另外,不要返回"°C"
因为它是一个数字,而不是一个字符串:
public static double CalculateTemp(double input)
{
return Math.Round((input - 32) * 5 / 9);
}
Run Code Online (Sandbox Code Playgroud)
1.0
是一个double
,而不是一个decimal
.使用后缀m
或M
将数字标记为decimal
.
("M"代表"Money",因为此类型通常用于金融交易.)
(input - 32) * 5M / 9M
Run Code Online (Sandbox Code Playgroud)
而你甚至不需要 * 1.0