【问题标题】:integer division to float result [duplicate]整数除法浮点结果[重复]
【发布时间】:2015-05-20 07:48:19
【问题描述】:

我必须将两个整数相除并得到一个浮点数作为结果 我的代码:

Float ws;
int i = Client.getInstance().getUser().getGespielteSpiele() -Client.getInstance().getUser().getGewonneneSpiele();
int zahl1 = Client.getInstance().getUser().getGewonneneSpiele();

ws = new Float((zahl1 / i));

我用调试器检查值

i = 64

zahl1 = 22

ws = 0.0

为什么ws的结果是0.0?我应该怎么做才能得到正确的浮点数?

【问题讨论】:

    标签: java floating-point division


    【解决方案1】:

    当您将两个 ints 相除时,您执行整数除法,在这种情况下将导致 22/64 = 0。只有完成此操作后,您才能创建一个 float。并且0float 表示是0.0。如果要进行浮点除法,则应在 before 除法之前强制转换:

    ws = ((float) zahl1) / i;
    

    【讨论】:

    • 很好,谢谢,这个解决方案是正确的,很好的解释:)
    【解决方案2】:

    zahl1 / i 计算为 int 除法,然后由 Float 构造函数转换为 Float。对于浮点除法,将操作数之一转换为floatdouble

    ws = new Float((float)zahl1 / i);
    

    【讨论】:

      【解决方案3】:

      因为你在做整数除法,你需要先把int值改成float。

      float ws = (float) zahl1 / i;
      

      【讨论】:

        【解决方案4】:

        尝试:

        float ws = (float)zahl1/i;
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-05-06
          • 1970-01-01
          • 2022-01-05
          • 1970-01-01
          • 1970-01-01
          • 2012-10-22
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多