将double转换为字符串时,如何在C#中将其四舍五入到小数点后N位

本文关键字:四舍五入 小数点 转换 double 字符串 | 更新日期: 2023-09-27 18:15:42

可能重复:
小数点后两位有效数字的四舍五入

我最多需要N个小数,不再需要,但我不想要尾随的零。例如,如果N=2,则

15.352
15.355
15.3
15

应该(分别(成为

15.35
15.36
15.3
15

将double转换为字符串时,如何在C#中将其四舍五入到小数点后N位

尝试Math.Round(value, 2).ToString()

Math.Round(15.352, 2).ToString();  //15.35
Math.Round(15.355, 2).ToString();  //15.36
Math.Round(15.3, 2).ToString();    //15.3
Math.Round(15.0, 2).ToString();    //15

四舍五入的第二个参数用于指定要四舍五舍五入到的小数位数。默认情况下,它会向上取整。

这可以通过使用自定义格式字符串来完成,例如"0.##",它最多显示两位小数。

String.Format("{0:0.##}", 123.4567);      // "123.46"

参考:http://www.csharp-examples.net/string-format-double/

Google确实起到了带头作用:使用##跳过格式字符串中的前导零。

// max. two decimal places
String.Format("{0:0.##}", 123.4567);      // "123.46"
String.Format("{0:0.##}", 123.4);         // "123.4"
String.Format("{0:0.##}", 123.0);         // "123"