我正在研究SQL Server數據庫,並且需要確保數字類型對於數據足夠大。Java雙重和Oracle浮動到SQL Server數字
有兩個來源:Java double
和Oracle float(126)
。
SQL Server類型是numeric(30,10)
或numeric(15,8)
。
我讀到雙打的Java可從存儲值-4.9E-324到1.7976931348623157E + 308,甲骨文float(126)
具有約38的精度位數,在SQL Server numeric(30,10)
僅具有30位的精度,並允許10個數字的十進制後點。
我是否正確地說numeric(30,10)
對於double
和float(126)
不安全,可能會導致精度或溢出的丟失。這些應該改爲DOUBLE PRECISION
?
根據[microsoft docs](http://msdn.microsoft.com/en-us/library/ms173773.aspx),可以設置的最高值是1.79E + 308,與OP的要求相匹配。奇怪的是,下界似乎不同意,這是我預料不到的。 –
@Damien_The_Unbeliever:這是64位浮點的範圍。如果Oracle允許FLOAT(126),其範圍必須大得多。下限不同,因爲其中列出了最小的「常規」值,而另一個是最小的非規格化值。 –