0

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

但是为什么我需要将 double 值转换为 float 才能使其工作..??
查看以下屏幕截图:

在此处输入图像描述

4

2 回答 2

6

以下函数

Math.Round(double value, int digits)

Math.Round(double value, int digits) 返回一个 double

返回一个double. 我看到您已尝试为输出定义一个float名称,其中是一个双精度值,并使用以下代码表示一个整数dMath.Round(n,2)n1.123452

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);为来解决此问题double d = Math.Round(n,2);

谢谢,
我希望你觉得这有帮助:)

于 2012-11-01T06:29:38.830 回答
1

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

于 2012-11-01T06:31:13.587 回答