SQL - 浮点数显示为 XE-05

SQL - Float number appears as XE-05

我在 Microsoft SQL 中插入浮点数,其中一些显示为:

7E-05
5E-05
6E-05

其他浮点数按预期插入。 例如,这个浮点数 0.00007 被插入为 7E-05 而这个 0.01500 被插入为 0.015

我怀疑浮点数的大小,但在将其减小到 x.yyyyy 后,我仍然得到这种浮点数。 任何人都知道是什么导致了这个问题?

如果你想像这样存储值,请在下面使用 DECIMAL 而不是 FLOATDECIMAL(18,5) 这将允许你在 [=15= 之后存储 5 位数字]

样本:

CREATE TABLE #test
(
    ID DECIMAL(18,5)
)
INSERT INTO #Test VALUES (0.00007)

SELECT ID FROM #Test

DROP TABLE #Test

结果:

0.00007

正如 Jon Skeet 所说:

You're not actually trying to save 123.66, because you can't represent 123.66 exactly as a float or double. The database is saving the data more accurately than you're used to, that's all.

If you want to save decimal numbers accurately, use the decimal type.


您可以在以下位置阅读更多信息: Link 1 Link 2 Link 3 Link 4