Ada*_*ler 14 sql sql-server ssms rounding
我正在使用SQL Server Management Studio并具有以下架构:
CREATE TABLE tmp(
id int NOT NULL IDENTITY(1,1)PRIMARY KEY,
toleranceRegion DECIMAL
)
Run Code Online (Sandbox Code Playgroud)
然后我执行以下插入:
INSERT INTO tmp VALUES(3.2);
INSERT INTO tmp VALUES(5.678);
INSERT INTO tmp VALUES(1.95);
Run Code Online (Sandbox Code Playgroud)
预期产量:
id toleranceRegion
-- ---------------
1 3.2
2 5.678
3 1.95
Run Code Online (Sandbox Code Playgroud)
实际产量:
id toleranceRegion
-- ---------------
1 3
2 6
3 2
Run Code Online (Sandbox Code Playgroud)
为什么插入的toleranceRegion值被舍入为最接近的整数?
Igo*_*gor 14
您没有为小数定义比例/精度.如果您想要小数点后的3位数,则应将其定义为DECIMAL(9,3),这将给出小数点前6位和小数最多3位.您需要分析预期数据,并根据预期指定列定义的正确精度和比例.
CREATE TABLE tmp(
id int NOT NULL IDENTITY(1,1)PRIMARY KEY,
toleranceRegion DECIMAL(9,3)
)
Run Code Online (Sandbox Code Playgroud)
请参阅Sql Server文档中的decimal.
| 归档时间: |
|
| 查看次数: |
15670 次 |
| 最近记录: |