除以浮点数1000时丢失的数据

Lon*_* Vu 4 java

我漂浮着

float data = 24931192;
Run Code Online (Sandbox Code Playgroud)

当我除以1000

data = data / 1000;
Run Code Online (Sandbox Code Playgroud)

它回报给我24931.191.谁能告诉我为什么?我该如何预防呢?谢谢

qap*_*hla 5

浮点数/浮点数只有很高的精度(准确地说是Java中的23位精度),而你只是遇到了精度不够的问题.如果浮点数不够,尝试使用双打,尽管最终会遇到问题.