我在C#中有一个双重如下:
var myDouble = 1.0;
当我想要显示这个双精度时,当它打印为1
时,它打印为1.0
,我正在使用它作为版本,因此它会使对象失败。
如何将其显示为真实值? 1.0不是1 ...
答案 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));