小编Rap*_*ann的帖子

我可以将UInt32,Int32和浮点值存储在double中而不会丢失信息吗?

我需要在变量中保存UInt32,Int32和float值.我可以使用double而不会丢失信息(例如,在转换中丢失一些数字)或者我是否需要使用任意精度等级?

从我目前的研究看起来我可以,因为我可以存储UInt32的最大值而不会丢失信息:

Assert.AreEqual(UInt32.MaxValue, Convert.ToUInt32(Convert.ToDouble(UInt32.MaxValue)));
Run Code Online (Sandbox Code Playgroud)
  • 因此,double应该支持足够的数字来表示小于或等于UInt32.MaxValue的所有数字.
  • 无论如何,Int32的值范围较小,因此也支持它.
  • 还应支持Float,因为它只是精度较低的两倍.

我错过了什么吗?

c# precision double type-conversion ieee-754

2
推荐指数
1
解决办法
1128
查看次数

标签 统计

c# ×1

double ×1

ieee-754 ×1

precision ×1

type-conversion ×1