C# Float to Double
本文关键字:Double to Float | 更新日期: 2023-09-27 18:09:10
static void Main(string[] args)
{
double y = 23.12F;
Console.WriteLine(y);
Console.Read();
}
为什么y的值显示23.1200008392334而不是23.12
static void Main(string[] args)
{
int i = -9; uint j = (uint)i;
Console.WriteLine(j);
Console.Read();
}
j如何显示值4294967287
浮点数仅保证对于整数值是精确的;除此之外,它们不能表示所有的数字;23.1200008392334是最接近23.12的,因为IEEE754 的工作方式。
如果你想要"典型"处理十进制值…使用decimal
代替:
decimal y = 23.12M;
与uint
-,因为uint
没有负值。相反,您是从uint
的最大值开始向后跟踪的。如果你不想这样,使用checked
:
uint j = checked((uint) i);
或
checked
{
uint j = (uint)i;
}
那么它就会在火花中爆炸。有时是好事;有时候坏。默认为unchecked
根据MSDN '这就是double的工作原理'http://social.msdn.microsoft.com/forums/en us/csharpgeneral/thread/1fcf6486 dce - 807 d - 4 - 8时- 7 - fe5268b568d/
我知道这是Java,但非常类似于c#:将float转换为double而不丢失精度