记录float类型的坑

doMore 1,089 2020-02-13
  1. 在mysql中存储float类型最好使用decimal,因为float会改变数据精度,比如:你程序中是49023.32,但是存储到数据库中就可能成了49023.31.使用decimal类型不会出现这种情况(使用varchar类型也可以)。
  2. 在java中float直接转换Bigdecimal类型会出现不准确的问题
float i = 2.08;
BigDecimal de = new Bigdecimal(i);
// de 的值可能就会是 2.07658 等
// 如何避免这种情况的出现。
// 使用字符串类型  这样转换出来的值就不会出现精度变化的情况
Bigdecimal de = new Bigdecimal(new String(i));