看板 Database 關於我們 聯絡資訊
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