可能是取模的时候17.1被强制转换成了double型的?
我再查下

解决方案 »

  1.   

    被转成double型?期待您的进一步回复!谢了!
      

  2.   

    我没查到,但我试了好多数字,包括多几位的小数,得出结果都是16位小数
    我觉得应该是转成double了,因为double的精度是16位
      

  3.   

    17.1在java中,本来就是用浮点数来表示,java的原则是如果操作数有较长的,则隐含自动转换,结果也不例外
      

  4.   

    我也试过了确实是按double型运算的,不过我在计算15.5/5的时候,System.out.println("15.5/5 = "+15.5/5);这样输出结果是:15.5/5 = 3.1,这里怎么不会有取模计算中的那么多位呢?
      

  5.   

    java 真是奇妙! 浮点都可去余
      

  6.   

    MOD 的原始定义应该是连续减4 取得最后小于4的结果
    17.1连续减4 后剩下1.1
    1.1别转换成符点型就变成了1.100000000004
    你可以把这个结果强制转换成符典型数据