0

我正在尝试简单计算浮点值,但输出不正确

Log.i("100/50", Float.toString(100/50));
Log.i("100/100", Float.toString(100/100));
Log.i("100/250", Float.toString(100/250));
Log.i("1/5", Float.toString(1/5));

日志输出

11-10 23:36:23.677: I/100/50(28562): 2.0
11-10 23:36:23.677: I/100/100(28562): 1.0
11-10 23:36:23.685: I/100/250(28562): 0.0
11-10 23:38:23.685: I/1/5(28562): 0.0

它是一个简单的浮点计算,为什么它显示这样的答案

4

4 回答 4

4

您需要使用浮点数而不是整数,尝试Log.i("100/50", Float.toString(100f/50));这使 Java 使用浮点算术,否则它会进行整数除法然后将结果转换为浮点数

于 2013-11-11T06:54:52.850 回答
1

这样做

Log.i("100/250", Float.toString(100f/250f));
Log.i("1/5", Float.toString(1f/5f));

输出是

11-11 12:25:32.198: I/100/250(351): 0.4
11-11 12:25:32.208: I/1/5(351): 0.2

Float.toString 接受输入浮点数

public static String toString (float f)

where f is the float to convert to a string.

更多信息可在开发者网站上找到。

于 2013-11-11T06:56:49.510 回答
0

使用此代码。

Log.i("100/50", Float.toString(100/50f)); Log.i("100/100", Float.toString(100/100f)); Log.i("100/250", Float.toString(100/250f)); Log.i("1/5", Float.toString(1/5f));

希望它对你有用。

于 2013-11-11T06:54:36.077 回答
0

您正在执行两个整数的除法。所以默认输出将是整数。而不是尝试将股息类型转换为浮点数,例如 (float)100/250,因此输出将为浮点数,您将获得正确的结果。

例如,代替 100/250 尝试 (float)100/250 或 100f/250。

于 2013-11-11T06:57:08.580 回答