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

来源:3-8 Java中运算符的优先级

qq_风_157

2017-01-15 14:57

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

为什么不是4.4而是4.0呢?

写回答 关注

4回答

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

    因为m, n 的类型为int

    qq_风_1...

    非常感谢!

    2017-01-15 15:11:08

    共 1 条回复 >

  • 谁抢了我的好奇宝宝
    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


Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165558 学习 · 17587 问题

查看课程

相似问题