📅  最后修改于: 2023-12-03 15:34:44.810000             🧑  作者: Mango
在C#中,我们可以使用Math.Round方法来将数字四舍五入为最近的整数。但是,这将返回一个双精度浮点数。如果我们想要将其转换为32位整数,我们需要使用Convert.ToInt32方法。
以下是一个示例代码片段,它将双精度浮点数四舍五入到32位整数:
double d = 3.1415926;
int i = Convert.ToInt32(Math.Round(d));
Console.WriteLine(i); //输出3
在这个例子中,我们将变量d设置为3.1415926。我们使用Math.Round方法将其四舍五入到最近的整数。然后,我们使用Convert.ToInt32方法将其转换为32位整数。最后,我们将结果打印到控制台。
请注意,如果数字大于Int32.MaxValue或小于Int32.MinValue,则转换将失败并抛出OverflowException。
下面是另一个例子,它演示了如何将一个字符串解析成一个浮点数,并将其四舍五入到32位整数:
string s = "3.1415926";
double d = Double.Parse(s);
int i = Convert.ToInt32(Math.Round(d));
Console.WriteLine(i); //输出3
在这个例子中,我们使用Double.Parse方法将字符串“3.1415926”解析成双精度浮点数。然后,我们使用Math.Round和Convert.ToInt32方法将其四舍五入并转换为32位整数。最后,我们输出i的值。
请注意,在解析字符串时,如果字符串不是一个有效的数字,则会抛出FormatException异常。如果数字大于Int32.MaxValue或小于Int32.MinValue,则转换将失败并抛出OverflowException。
希望这个例子能帮助你将数字四舍五入到32位整数。