在.NET库中有像
这样的功能
System.Math.Round(double, int)
但为什么我需要将double值转换为float以使其工作.. ??
请看以下屏幕截图:
答案 0 :(得分:5)
以下功能
Math.Round(double value, int digits)
返回double
。我发现您已尝试为float
的输出定义d
名称Math.Round(n,2)
,其中n
是值1.12345
和{{1}的两倍使用以下代码表示整数
2
您实际上会收到错误,因为上述函数的输出为double n = 1.12345;
float d = Math.Round(n,2);
而不是double
。
float
您可以通过将Cannot implictly convert type 'double' to 'float'. An explicit conversion exists (are you missing a cast?)
更改为float d = Math.Round(n,2);
谢谢, 我希望你觉得这很有帮助:)
答案 1 :(得分:1)
从double转换为float,您将失去精度,无法隐式执行。如果将float值赋给更准确的double变量,编译器就不会抱怨。