C# 为什么我能';t调用Math.Round(double,int)重载
在.NET库中有类似于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); 实际上
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中