Em đang học SQL server và có thắc mắc đến đầu ra của dữ liệu dựa trên 2 kiểu dữ liệu chính là: money
và decimal
.
DECLARE
@mon1 MONEY,
@mon2 MONEY,
@mon3 MONEY,
@mon4 MONEY,
@num1 DECIMAL(19,4),
@num2 DECIMAL(19,4),
@num3 DECIMAL(19,4),
@num4 DECIMAL(19,4)
SELECT
@mon1 = 100, @mon2 = 339, @mon3 = 10000,
@num1 = 100, @num2 = 339, @num3 = 10000
SET @mon4 = @mon1/@mon2*@mon3
SET @num4 = @num1/@num2*@num3
SELECT @mon4 AS moneyresult,
@num4 AS numericresult
Output: 2949.0000 2949.8525
Tại sao cùng 1 phép tính toán mà money
là kiểu dữ liệu số thực nhưng nó lại bị mất thông tin phần thập phân, trong khi đó kiểu decimal
lại có thể tính toán chính xác ạ. Xin cảm ơn các cao nhân rất nhiều !!!