【发布时间】:2013-05-16 02:00:26
【问题描述】:
我正在尝试输出一个非常简单的值,但我得到的却很奇怪:
Log.d("try", "distanceWithMaxSpeed > " + ((90 * (1000 / 3600)) * ((3000 - 2000)/1000)) );
我得到 0 而不是 25!我哪里错了?
【问题讨论】:
我正在尝试输出一个非常简单的值,但我得到的却很奇怪:
Log.d("try", "distanceWithMaxSpeed > " + ((90 * (1000 / 3600)) * ((3000 - 2000)/1000)) );
我得到 0 而不是 25!我哪里错了?
【问题讨论】:
整数除法
1000/3600 = 0
您应该将它们更改为浮点数 (90f) 或双精度数 (90.0)
【讨论】:
你正在做整数除法。如果分子小于除数,则至少有一个操作数应为double:
Log.d("try", "distanceWithMaxSpeed > " + ((90 * (1000.0 / 3600)) * ((3000 - 2000)/1000)) );
^^
【讨论】: