问答详情
源自:3-8 Java中运算符的优先级

double取模结果为什么是4.0而不是4.4

int m = 5; int n = 7; double x=(m*8/(n+2))%m; System.out.println("x:" + x); 

为什么不是4.4而是4.0呢?

提问者:qq_风_157 2017-01-15 14:57

个回答

  • 慕雪0297775
    2017-01-15 14:59:40
    已采纳

    因为m, n 的类型为int

  • 谁抢了我的好奇宝宝
    2017-10-30 23:17:36

    package com.imooc;


    public class HelloWorld {

        public static void main(String[] args) {

    double x=40/9+0.0;

    System.out.println(x);

    }

    }

    就这样也是4.0,我也不明白,一起等大神吧。

  • 夏日天浅蓝
    2017-01-15 15:18:23

    double x=40/9;输出结果也是4.0

    为什么呢?

  • qq_风_157
    2017-01-15 15:14:16

    刚才验证了下,将(n+2)改为(n+2.0)结果是4.4444444444445