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
而不是 FLOAT
: DECIMAL(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.
我在 Microsoft SQL 中插入浮点数,其中一些显示为:
7E-05
5E-05
6E-05
其他浮点数按预期插入。
例如,这个浮点数 0.00007
被插入为 7E-05
而这个 0.01500
被插入为 0.015
。
我怀疑浮点数的大小,但在将其减小到 x.yyyyy 后,我仍然得到这种浮点数。 任何人都知道是什么导致了这个问题?
如果你想像这样存储值,请在下面使用 DECIMAL
而不是 FLOAT
: DECIMAL(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.