这个部门出了什么问题?

Dav*_*vid 3 java floating-point

这是代码:

class testsum
{ 
    public static void main(String arg[]) 
    {
        double sum=0; 
        double fraction;
        fraction=-1/9;
        System.out.println("fraction: "+fraction); 
        fraction=-1; 
        fraction=fraction/9; 
        System.out.println("fraction: "+fraction); 
    } 
} 
Run Code Online (Sandbox Code Playgroud)

输出0然后是-0.11111111

为什么是第一个输出0而不是-0.11111111111

Jef*_*ter 8

它在第一个例子中进行整数除法,因为这是数字文字的默认类型.尝试将其更改为-1.0/9(或1d/9d- 后缀表示a double),您应该得到相同的答案.