如何显示尾零?



如何像下面的例子那样保留末尾的零?当我输入-。如果不带前导零,则只显示-0.23,不带后面的零。但是当我输入-0.230时,它产生的预期结果是-0.230。

Actual output: -.230 -> -0.23
Expected output: -.230 -> -0.230

我也试过String.Format("{0:0.000}", n),但它仍然不起作用。

看起来您要转换为string,因此您可以使用以下

someNumber.ToString("N3");

请参阅MSDN文档了解其工作原理,大约在页面的中间部分,它还提供了一堆不同代码的示例。

似乎您正在打印与您执行的相同的数字string.format.

尝试存储string的输出。格式化并使用它。我用了和你一样的方法得到了预期的答案。参考以下代码

var n = -.23;
string str = string.Format("{0:0.000}", n);
Console.WriteLine(str); // This will give you an expected output
Console.WriteLine(n); // This won't give you an expected output

问题中提到的doubledecimal是完全不同的类型。double是一个二进制浮点值,它不保留后面的零:

double value = -0.230;
Console.Write(value); // -0.23

double不同,decimal是十进制浮点数,它存储后面的零:

decimal value = -0.230m; // note suffix "m" 
Console.Write(value); // -0.230 

当用string表示时,这些类型的值可以格式化,例如用F3格式字符串,表示小数点&quot后的3位数字:

double v1  = -0.230;
decimal v2 = -0.230m;
Console.Write($"{v1:f3} {v2:f3}"); 

结果:

-0.230 -0.230  

最新更新