有 Java 编程相关的问题?

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


共 (3) 个答案

  1. # 1 楼答案

    如果getGame_time()方法不返回double/float,则需要显式地将.0添加到被除数,或将其强制转换为double/float类型

    gameInfo.getGame_time() / 1000.0;
    

    默认情况下,Java执行整数除法,这会截断结果的小数部分。要强制进行浮点除法,还可以使用后缀表示法:

    int/1000f
    int/1000d
    
  2. # 2 楼答案

    当使用算术运算符时,Java总是会扩展到使用最广泛的类型。这个规则的一个例外是对类型bytecharshort的算术运算,它们总是转换为int。这就是为什么

    byte b = 1;
    b = b + 1;
    

    由于类型不匹配,将无法编译。但有趣的是

    byte b = 1;
    b += 1;
    

    将按预期编译和工作

    回到主题:如果你把两个int除以,你会得到一个int。如果你把一个int和一个float分开,你会得到一个float。。。因此,使表达式按您希望的方式运行的最简单方法是将其中一个值设置为floatdouble

    可以通过在浮点数后面附加fF来表示浮点文字

    对于double,您可以:

    • 只要写一个浮点数,它们就会默认为double
    • 向整数文本中添加一个´.0',使其成为double文本
    • 在浮点数上附加一个dD,使其成为一个double更加详细

    将此应用到代码中,一种可能的解决方案是:

    double playerScore1 = gameInfo.getGame_time() / 1000.0;
    
  3. # 3 楼答案

    使用1000.0,它会将其转换为Double,如果你将其除以1000,它会自动将其转换为整数。并为PlayerCore1使用数据类型Double,因为它将返回Double notString

    Double playerScore1 = gameInfo.getGame_time() / 1000.0;
    playerscore1.setText(Double.toString(playerScore1));