在
MySQL中比较实数时,我应该采取预防措施吗?
# Get completly paid bills
select * from bills left join payments on bills.id = payments.bill
where bills.price = payments.price;
在通常的编程语言(如 C/C++)中,实数(浮点数)之间的此类比较必须使用充当比较精度的delta
值来完成:
if (abs(bill_price - payments_bill) <0.00001) 做点什么
但我不知道MySQL是否有这样的精度问题。
MySQL的内部浮点格式是64位IEEE。
是的,在MySQL中进行这种算术时,您需要担心机器epsilon(舍入误差)。