浮点计算有两种不同的IEEE标准。 IEEE 754(b = 2)和IEEE 854(b = 2或b = 10)。 SQLLite wiki 说:
REAL。该值是浮点值,存储为8字节IEEE浮点数。
我需要在SQLLite列中存储IEEE 754 double,然后读取此值(不需要任何算术)。我是否可以确信我将读取相同的二进制值(754具有唯一的二进制表示),包括所有类型的NaN等(换句话说:关于IEEE754双精度,SQLLite是否无损)?
答案 0 :(得分:1)
我认为这取决于sqlite版本(它没有,请阅读下文)
我找到了REAL的其他定义:
REAL:该值是一个浮点数,存储为8字节值 处理器的原生格式。对于大多数现代处理器来说,这是 IEEE 754双精度数。文字浮点数 由包含a的任何一系列数字数字表示 小数点或指数。
在O' Reily Using Sqlite
中可以找到类似的定义但最新的sqlite3表示IEEE,因此它是IEEE 754
修改强>
Sqlite版本2. *是typeless。
the oldest version of the doc 我发现与sqlite 3.0.0 alpha发布日期匹配并且没有更改。
我引用的书籍可能基于pre alpha文档。