首页 文章

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

提问于
浏览
1

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

真实 . 该值是浮点值,存储为8字节IEEE浮点数 .

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

1 回答

  • 1

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

    我发现了REAL的其他定义:

    REAL:该值是一个浮点数,以处理器的本机格式存储为8字节值 . 对于大多数现代处理器,这是IEEE 754双精度数 . 文字浮点数由任何包含小数点或指数的裸数字数字表示 .

    Source

    在O'Reily中找到了类似的定义Using Sqlite

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


    EDIT:

    Sqlite版本2. *是typeless .

    the oldest version of the doc我发现与sqlite 3.0.0 alpha发布日期的匹配并没有改变 .

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

相关问题