计算总是导致零

coo*_*000 -1 java

我有以下java代码

long x=25782

float y=x/1000000000
Run Code Online (Sandbox Code Playgroud)

而不是像我期望的那样y等于0.000025782,它等于0.0

我究竟做错了什么?

Ant*_*onH 5

你按long类型划分,所以它会向下舍入到0.

请改用:

float y=x/1000000000.0;
Run Code Online (Sandbox Code Playgroud)

  • 如果他想要更好的精度,我也会建议使用双倍的y (4认同)
  • 对.他们也可以把`f`放在最后,而不是`.0`. (2认同)