显示双倍的真实价值?

时间:2018-01-24 00:46:43

标签: c# .net

我在C#中有一个双重如下: var myDouble = 1.0;

当我想要显示这个双精度时,当它打印为1时,它打印为1.0,我正在使用它作为版本,因此它会使对象失败。

如何将其显示为真实值? 1.0不是1 ...

4 个答案:

答案 0 :(得分:1)

使用

var myDouble = 1.0;
Console.WriteLine(myDouble.ToString("0.0"));

答案 1 :(得分:1)

这个问题在技术上没有答案。 double是64位(浮点为32位)数字浮点类型。从根本上说,1,1.0,1.00和1.000之间没有区别。这些都是SAME值。

实际上,对于所有这些示例,如果其64位的二进制值达到3FF0000000000000。如果它的32位,二进制表达式是不同的,但想法是相同的。

格式由IEE 754规范定义。有关详细信息,请访问:     https://en.wikipedia.org/wiki/IEEE_754

如果是浮点数,则有3个部分: 签名位 2.指数 3.尾数

“我输入的零数”没有任何部分。

基本上,一旦你将它转换成一个数字,你就失去了格式化文本的定义,这对于一个数字来说是不存在的。

如果要记住键入的小数位数,则需要将其存储为字符串。如果您只想格式化十进制数据类型,则需要指定一种格式,因为您不了解原始格式。

答案 2 :(得分:0)

说“1”是 true 值是正确的。

您可以使用以下内容格式化数字:

myDouble.ToString("0.0");

但我真的不明白你为什么会这样。版本通常以特定方式格式化。有些人将其格式化为“1.00”。我真的认为将它存储在一个字符串中更有意义,因此它始终保证完全按照它应该出现。

答案 3 :(得分:0)

您应该将变量声明为double类型,如下所示:

double a = 1.0;
Console.WriteLine(string.Format("{0:0.0}",a));