实数是MySQL

时间:2017-01-12 23:11:45

标签: mysql floating-point compare

在比较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是否存在这样的精确问题。

1 个答案:

答案 0 :(得分:1)

MySQL的内部浮点格式是64位IEEE。

是的,在MySQL中进行这种算法时,你需要担心machine epsilon (roundoff errors)