Why I can't call Math.Round(double,int) overlo

2019-09-09 07:07发布

In .NET Library there is Function like
System.Math.Round(double, int)

But why I need to cast double value to float to make it work..??
Look on the following screenshot:

enter image description here

2条回答
我命由我不由天
2楼-- · 2019-09-09 07:41

The following function

Math.Round(double value, int digits)

Math.Round(double value, int digits) returns a double

Returns a double. I see that you have tried to define a float of name d to the output from Math.Round(n,2) where n is a double of value 1.12345 and 2 represents an integer using the following code

double n = 1.12345;
float d = Math.Round(n,2);

You'll actually get an error because the output from the above function is double and not a float.

Cannot implictly convert type 'double' to 'float'. An explicit conversion exists (are you missing a cast?)

You may fix this by changing float d = Math.Round(n,2); to double d = Math.Round(n,2);

Thanks,
I hope you find this helpful :)

查看更多
萌系小妹纸
3楼-- · 2019-09-09 07:48

Converting from double to float, you will lose precision and it cannot be done implicitly. If you assign a float value to a double variable which is more accurate, the compiler will not complain.

查看更多
登录 后发表回答