浮点舍入,位串和二进制精度

时间:2012-09-06 17:14:13

标签: floating-point bitstring

假设我使用32位浮点数来存储位串(不要问)。假设我想将此浮点数序列化为文件(作为浮点数),并且在序列化之前将使用银行家对浮点数的十进制表示进行舍入。当我将浮点数读回程序时,系统会(自然地)将它存储在一个32位的浮点数中,该浮点数尽可能接近序列号。

在数字方面,在银行家舍入后,我的序列化浮点数是多么精确,以确保浮点序列化的二进制数等于读回的浮点数?

1 个答案:

答案 0 :(得分:2)

如果你的问题是你需要多少个十进制数来确保转换为十进制并返回到IEEE 754单精度产生原始值,那么它将在this answer中得到解答。这假设软件进行格式化和解释是好的(语言标准可能不需要它)。

特别是,IEEE 754-2008标准第32页的注释1中的第五项支持该答案,单个为9位,双为17位:

  

从支持的二进制格式bf到外部字符序列的转换再次返回会产生原始数字的副本,只要至少指定了Pmin(bf)有效数字,并且在此期间有效的舍入方向属性两次转换是最接近的舍入方向属性。