double x = 1 / 112144;
            Console.WriteLine(x.ToString());
如以上语句
为什么返回值为零,如何得到正确数据?

解决方案 »

  1.   

    double x = (double)1 / 112144;
    因为在计算1 / 112144的时候是按int计算的,再把计算结果转成double赋给x。
      

  2.   

    1 / 112144是整数相除,结果为0再转换为double类型,结果还是0。可以写成 1.0 / 112144或1 / 112144.0或(double)1 / 112144或1 / (double)112144
      

  3.   

    double x = 1 / 112144;这里由于1和112144都是int型,所以“/”做的是整除运算,也就是1/112144=0.……,取整后就是0。
    如果想得到正确的值,可以用强制类型转换:double x = (double)1 / (double)112144;
    或者写成:double x = 1.0 / 112144.0;
      

  4.   

    很简单double类型 他存储的长度就那么长 但你要算的结果是(我没算估计):0.0000000000....所以后面的就显示不到,就显示0
      

  5.   

    2楼是正解写成下面的形式:
    double x = 1.0 / 112144 ; 
    其实也是可行
      

  6.   


    这样就可以了
    [code=C#][
                double   x = 1.0 / 112144;
                MessageBox.Show(x.ToString("N25"));
    /code]
    这样可以显示小数点后25位数字