文档首页/ 云数据库 RDS/ 故障排除/ RDS for MySQL/ SQL类/ 为什么有时候用浮点数做等值比较查不到数据
更新时间:2022-10-26 GMT+08:00

为什么有时候用浮点数做等值比较查不到数据

原因分析

浮点数的等值比较问题是一种常见的浮点数问题。因为在计算机中,浮点数存储的是近似值而不是精确值,所以等值比较、数学运算等场景很容易出现预期外的情况。

MySQL中涉及浮点数的类型有float和double。如下示例中遇到的问题:

解决方案

  1. 使用精度的方法处理,使用字段与数值的差值的绝对值小于可接受的精度的方法。示例:

  2. 使用定点数类型(DECIMAL)取代浮点数类型,示例: