【问题标题】:What column type in Oracle can take full range of java double valuesOracle中什么列类型可以取全范围的java double值
【发布时间】:2024-01-17 10:51:02
【问题描述】:

Oracle 10g 中的哪些列类型可用于存储 java double 的任何值,包括 Double.MAX_VALUE 和 Double.MIN_VALUE?

【问题讨论】:

    标签: java oracle double


    【解决方案1】:

    来自Oracle SQL Reference

    NUMBER 数据类型存储零以及绝对值从 1.0 x 10^-130 到(但不包括)1.0 x 10^126 的正数和负数。

    看来你可能需要BINARY_DOUBLE

    最大正有限值:1.79769313486231E+308

    最小正有限值:2.22507485850720E-308

    【讨论】:

    • 文档说:“一个保持双精度类型的最大正有限值的常数,(2-252)·21023”。我用 ** 表示求幂。将此表达式输入 Windows 计算器得到 1,797693134862315708145274237317e+308。
    • Oracle 的 BINARY_DOUBLE 不存储 IEEE754 值 -0,Java 存储。
    • -0 与 0 相比到底是什么? ;-)
    • 我以为就是这样。出于某种原因,我得到了 oracle jdbc driwer
    • .. 在插入接近最大值/最小值时抛出异常。
    最近更新 更多