C# 为什么我能';t调用Math.Round(double,int)重载

C# 为什么我能';t调用Math.Round(double,int)重载,c#,.net,floating-point,double,C#,.net,Floating Point,Double,在.NET库中有类似于 System.Math.Round(double,int) 但是为什么我需要使用双值来浮动以使其工作..??? 查看以下屏幕截图: 以下功能 Math.Round(double value, int digits) 返回一个double。我看到您试图将名为d的float定义为Math的输出。Round(n,2)其中n是值1.12345的两倍,2表示使用以下代码的整数 double n = 1.12345; float d = Math.Round(n,2); 实际上

在.NET库中有类似于
System.Math.Round(double,int)

但是为什么我需要使用双值来浮动以使其工作..???
查看以下屏幕截图:

以下功能

Math.Round(double value, int digits)

返回一个
double
。我看到您试图将名为
d
float
定义为
Math的输出。Round(n,2)
其中
n
是值
1.12345
的两倍,
2
表示使用以下代码的整数

double n = 1.12345;
float d = Math.Round(n,2);
实际上,您将得到一个错误,因为上述函数的输出是
double
,而不是
float

无法将类型“double”隐式转换为“float”。存在显式转换(是否缺少强制转换?)
您可以通过更改
float d=Math.Round(n,2)来解决此问题
双d=数学四舍五入(n,2)

谢谢,

我希望这对您有所帮助:)

将double转换为float,您将失去精度,并且无法隐式完成。如果将浮点值指定给更精确的双变量,编译器不会抱怨。

。这是你要的吗?我已经看过了。这不是我的4号路金4号@你的问题是为什么没有从双人到浮动的隐式转换?实际上是我的错误。我假设错误发生在函数调用中。但事实并非如此。这是因为我将其返回值存储在float@Mullaly中