【问题标题】:java result really different from the expected onejava 结果与预期的结果确实不同
【发布时间】:2013-05-16 02:00:26
【问题描述】:

我正在尝试输出一个非常简单的值,但我得到的却很奇怪:

Log.d("try", "distanceWithMaxSpeed > " + ((90 * (1000 / 3600)) * ((3000 - 2000)/1000)) );

我得到 0 而不是 25!我哪里错了?

【问题讨论】:

    标签: java calculus


    【解决方案1】:

    整数除法

    1000/3600 = 0

    您应该将它们更改为浮点数 (90f) 或双精度数 (90.0)

    【讨论】:

      【解决方案2】:

      你正在做整数除法。如果分子小于除数,则至少有一个操作数应为double

      Log.d("try", "distanceWithMaxSpeed > " + ((90 * (1000.0 / 3600)) * ((3000 - 2000)/1000)) );
                                                           ^^
      

      【讨论】:

      • 我简化了发布它的示例,但我有两个函数在公式中返回双精度值。但是我曾经获得过零!通过使用 .0 尾随每个操作数,一切正常:-)
      猜你喜欢
      • 1970-01-01
      • 2015-09-14
      • 2017-06-12
      • 2019-12-27
      • 2015-08-13
      • 2015-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多