有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

安卓中java浮点到字符串的转换

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

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) 个答案

  1. # 1 楼答案

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

  2. # 2 楼答案

    你喜欢这样吗

    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
    

    漂浮。toString接受一个输入浮点

    public static String toString (float f)
    
    where f is the float to convert to a string.
    

    有关更多信息,请访问Developers Website

  3. # 3 楼答案

    您正在执行两个整数的除法。因此,默认情况下,输出将是整数。与之相反,试着将股息输入浮动,例如浮动100/250,这样输出将是浮动的,你会得到正确的结果

    例如,代替100/250尝试(浮动)100/250或100f/250

  4. # 4 楼答案

    使用这个代码

    日志。i(“100/50”,浮动。toString(100/50f)); 日志i(“100/100”,Float.toString(100/100f)); 日志i(“100/250”,浮动。toString(100/250f)); 日志i(“1/5”,Float.toString(1/5f))

    希望对你有用