fredmar Asked: 2020-07-29 17:14:14 +0800 CST 2020-07-29 17:14:14 +0800 CST 2020-07-29 17:14:14 +0800 CST 如何指定双精度中的小数位数? 772 有人可以帮我吗,如果它具有数据类型,我需要显示 4 位小数double: Console.WriteLine(num); 例如显示 0.2544。 c# 5 Answers Voted Carlos Muñoz 2020-07-29T21:24:52+08:002020-07-29T21:24:52+08:00 最简单的方法: Console.WriteLine("{0:N4}", num); 在这种情况下,格式字符串N4表示具有 4 个小数位的数字格式。 请注意以下事项: 如果数字有更多小数位,它们将被截断为仅 4 如果数字较少,则以右侧零完成 如果数字没有小数,则以小数点后4个零完成 有关数字格式字符串的更多信息:标准数字格式字符串 Best Answer Leodev 2020-07-29T17:51:46+08:002020-07-29T17:51:46+08:00 我猜你的问题是 Math.Round 选项对值进行四舍五入,你不希望这样,如果是这种情况,你可以像这样“截断”小数: double value = 0.2544737373; double num = (Math.Truncate(value * 10000) / 10000); Console.WriteLine(num); 您会注意到,辅助值“10000”中的零数是您想要的小数位数。 您可以创建一个 extensionMethod 以使这更容易: public static double Truncate(this double value, int decimales) { double aux_value = Math.Pow(10, decimales); return (Math.Truncate(value * aux_value ) / aux_value ); } 所以直接调用Truncate double value = 0.2544737373; double num = value.Truncate(4); Console.WriteLine(num); Mauricio Atanache 2020-07-29T18:45:54+08:002020-07-29T18:45:54+08:00 如果只是出于显示目的,您可以使用: Console.WriteLine(num.ToString("N4")); Sergio López 2022-07-29T01:50:05+08:002022-07-29T01:50:05+08:00 也许“Convert.ToInt32(value)”对你有用。 double x= 1.2; int c = Convert.ToInt32(x); Console.WriteLine(c); leosoft 2022-04-20T08:22:26+08:002022-04-20T08:22:26+08:00 Console.WriteLine(num.ToString("N2")); N指Number,这将指示您要放置多少个十进制数字。
最简单的方法:
在这种情况下,格式字符串
N4
表示具有 4 个小数位的数字格式。请注意以下事项:
有关数字格式字符串的更多信息:标准数字格式字符串
我猜你的问题是 Math.Round 选项对值进行四舍五入,你不希望这样,如果是这种情况,你可以像这样“截断”小数:
您会注意到,辅助值“10000”中的零数是您想要的小数位数。
您可以创建一个 extensionMethod 以使这更容易:
所以直接调用Truncate
如果只是出于显示目的,您可以使用:
也许“Convert.ToInt32(value)”对你有用。
N
指Number
,这将指示您要放置多少个十进制数字。