什么IEEE标准SQLLite用于存储REAL值?它是否存储IEEE 754双无损?

时间:2016-04-29 23:23:56

标签: ieee-754

浮点计算有两种不同的IEEE标准。 IEEE 754(b = 2)和IEEE 854(b = 2或b = 10)。 SQLLite wiki 说:

  

REAL。该值是浮点值,存储为8字节IEEE浮点数。

我需要在SQLLite列中存储IEEE 754 double,然后读取此值(不需要任何算术)。我是否可以确信我将读取相同的二进制值(754具有唯一的二进制表示),包括所有类型的NaN等(换句话说:关于IEEE754双精度,SQLLite是否无损)?

1 个答案:

答案 0 :(得分:1)

我认为这取决于sqlite版本(它没有,请阅读下文)

我找到了REAL的其他定义:

  

REAL:该值是一个浮点数,存储为8字节值   处理器的原生格式。对于大多数现代处理器来说,这是   IEEE 754双精度数。文字浮点数   由包含a的任何一系列数字数字表示   小数点或指数。

Source

在O' Reily Using Sqlite

中可以找到类似的定义

但最新的sqlite3表示IEEE,因此它是IEEE 754

修改

Sqlite版本2. *是typeless

the oldest version of the doc 我发现与sqlite 3.0.0 alpha发布日期匹配并且没有更改。

我引用的书籍可能基于pre alpha文档。