Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#浮动到双精度_C#_Floating Point_Double - Fatal编程技术网

C#浮动到双精度

C#浮动到双精度,c#,floating-point,double,C#,Floating Point,Double,为什么y的值显示为23.1200008392334而不是23.12 static void Main(string[] args) { double y = 23.12F; Console.WriteLine(y); Console.Read(); } 根据MSDN“这就是double的工作原理”,j如何显示值4294967287 我知道这是Java,但与C非常相似: 根据MSDN,“这就是double的工作原理” 我知道这

为什么y的值显示为23.1200008392334而不是23.12

static void Main(string[] args)
{
           double y = 23.12F;
           Console.WriteLine(y);
           Console.Read();
}

根据MSDN“这就是double的工作原理”,j如何显示值4294967287

我知道这是Java,但与C非常相似:

根据MSDN,“这就是double的工作原理”

我知道这是Java,但与C非常相似:

浮点仅保证整数值的精确性;除此之外,它们不能代表所有的数字;由于IEEE754的工作原理,23.1200008392334最接近23.12

如果你想“典型”处理十进制值。。。改用
decimal

static void Main(string[] args)
    {
        int i = -9; uint j = (uint)i;
        Console.WriteLine(j);
        Console.Read();
    }
使用
uint
-因为
uint
没有负值。而是从
uint
的最大值向后跟踪。如果您不想这样做,请使用
checked

decimal y = 23.12M;

然后,它会在一阵火花中爆炸。有时是件好事;有时很糟糕<默认情况下,代码>未选中。

浮点仅保证整数值的精确性;除此之外,它们不能代表所有的数字;由于IEEE754的工作原理,23.1200008392334最接近23.12

如果你想“典型”处理十进制值。。。改用
decimal

static void Main(string[] args)
    {
        int i = -9; uint j = (uint)i;
        Console.WriteLine(j);
        Console.Read();
    }
使用
uint
-因为
uint
没有负值。而是从
uint
的最大值向后跟踪。如果您不想这样做,请使用
checked

decimal y = 23.12M;


然后,它会在一阵火花中爆炸。有时是件好事;有时很糟糕<代码>未选中是默认值。

您的第二个示例似乎很奇怪。您正在转换不支持负数的类型中的负数,-9的值为:1111111111111111111111111111111111111111111111011。把这个数字输入一个计算器,可以将二进制转换成十进制,得到4294967287;我们的第二个例子似乎很奇怪。您正在转换不支持负数的类型中的负数,-9的值为:1111111111111111111111111111111111111111111111011。把这个数字输入一个计算器,可以将二进制转换成十进制,得到4294967287;P