我的問題是:的SQL Server 2008+:模數和十進制/數字數據類型
是它與T-SQL decimal
或numeric
數據類型使用模運算%
相結合的有效運行。
這似乎只要我測試過它的工作,但是這實際上是decimal
值的預期的行爲像SELECT 2.0 % 0.4
導致0.0
,我可以依靠?
我的想法是創建這樣一個查詢:
SELECT itemNumber
FROM item i
JOIN orderItem oi ON i.ID = oi.itemID
WHERE oi.orderID = @orderID
AND oi.amount % i.amount <> 0.0000
實際上,我是驚訝的是,它似乎工作。這是預期的行爲?
我曾期待只有爲整數值工作,並準備使用不同的東西。
對於背景:
我們賣的是一些以米爲單位的預包裝形式我們的東西。數據庫中的數據字段爲numeric(18,4)
值,一些預打包單元打包爲十進制值。現在我必須創建一個程序來檢查銷售的商品是否是預先包裝的單位的倍數,確定是否可以發送有效數量的預先包裝物品,如果需要適當地切割物品。
隨着數字(18,4)的精度應該是足夠高的,我認爲? – Adwaenyth
@Adwaenyth它取決於你的環境,如果你測量'量'噸 - 你應該增加更多的數字在右側,如果你使用克,我認爲,這已經足夠了 – Backs
它實際上是米。 – Adwaenyth