我正在一家小型网上商店工作,并且试图以最低的价格购买某种产品(照片)。
因此,我检查了最低的附加价格是多少(可以订购不同尺寸的照片):
SELECT
MIN(price) as price
FROM
rm_prices
WHERE
photo_id = '47' AND
price != '0'
这将返回为此产品找到的最低值。
当我检查数据库时,我看到最小值是1256.3。
当我打印结果时,给出的数字是1256.30004882813。
该值设置为FLOAT。
为什么结果是1256.30004882813,而不是1256.3?
最佳答案
因为real number 1256.3无法在floating point中精确表示。
您应该将fixed-point datatype用于货币数据。引用MySQL documentation:
关于mysql - SQL MIN()奇怪的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8475683/