为什么我不能调用Math.Round(double,int)重载

sha*_*wat 0 .net c# floating-point double

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

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

在此输入图像描述

Pic*_*are 5

以下功能

Math.Round(double value, int digits)
Run Code Online (Sandbox Code Playgroud)

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

返回一个double.我看到你试图为输出定义一个float名称d,Math.Round(n,2)其中where n是value的两倍,1.123452使用以下代码表示一个整数

double n = 1.12345;
float d = Math.Round(n,2);
Run Code Online (Sandbox Code Playgroud)

你实际上会得到一个错误,因为上面函数的输出是double而不是a float.

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

您可以通过更改float d = Math.Round(n,2);为修复此问题double d = Math.Round(n,2);

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