作者rushcat (嗯)
看板Database
标题[SQL ] 关於DECIMAL的除法
时间Tue Mar 24 18:51:46 2009
DB : SQL Server 2000
因为一些资料需要运算 到小数点下15位左右
想到精确度问题 所以打算用DECIMAL
但发现DECIMAL有点奇妙
DECLARE @A DECIMAL(38, 30)
SET @A = 0.11111111111111111111
SELECT @A / 5
=> 0.022222222222222222222000000000
DECLARE @A DECIMAL(38, 30)
SET @A = 0.11111111111111111111
SELECT @A / 5.000000000000000000000
=> 0.022222222
不太懂为何会有这样的差异!?
另外
DECLARE @A DECIMAL(38,30)
DECLARE @B INT
SET @A = 0.11111111111111111111
SET @B= 5.0000000000000000000
SELECT @A / @B
=> 0.022222222222222222222000000000
DECLARE @A DECIMAL(38,30)
DECLARE @B DECIMAL(38,30)
SET @A = 0.11111111111111111111
SET @B= 5.0000000000000000000
SELECT @A / @B
=> 0..022222
这更不能理解了...XDDD
想请问有没有人能稍微解释一下
如果真的需要用到小数点以下15位去做运算 (包含加减乘除) 该怎麽处理比较适当?
--
◢ █◣ ◢◢◣ ◢◣◥████
◢███◣ ◢ ◣ █╴█╴█ ████
███▉█ ◢█◢ ◣◢ ██ ≡███≡ ◥█
███▉█ ◢▉█ ◢██ ███ ◢██ ◢██ ███ ◥█﹋█◤ ◎ █
█▇▇▇◤ █▉█ █▇▇ █▇▏ ▉▇▇ █▉█ ██ ▉▉█▏▏/ ◢█
██▇▏◣ █▇█ ▇▇█ ██▏ ███ █▇█▎██ █▉▉█▏▏█ rushcat
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.87.128.113