如提:
a = 1.0120000  ,  b = 1111.245601560000
后面的位数不固定,主要是后面的0要保住。
怎么让他原样输出呢????用tostring好象不行。会把后面的0给去掉 请大家不要轻易的说用 tostring() 就好了,可以的话自己的机子上试正确了。
谢谢。弄了好久也不会

解决方案 »

  1.   

    数字的精度是固定死的,不可自定义的只能用字符串
    string a = "1.0120000";
    string b = "1111.245601560000";
      

  2.   

    wocaonimabi
    楼主的名字很牛~
      

  3.   

    12345.ToString("f4"); //生成 12345.0000
      

  4.   

    12345.ToString("f4"); //生成 12345.0000同意,用f4来控制,想要几位都可以
      

  5.   

    加个"M"如:
    decimal num1 = 23.3401232343434M;
    MessageBox.Show(num1.ToString());
      

  6.   

    如果是输入控件来接受用户输入的数值的话,可以不用转换;如果是声名的变量的话,那就只能用string来声名了,如果是固定了长度的,比如说小数点后必须保留三位,不足的补零的,可以通过字符串来填充,但整体来说,只能用字符串对变量进行保存。
      

  7.   

    System.Globalization.NumberFormatInfo nfi = new System.Globalization.NumberFormatInfo();
    decimal test = 1111111111111.0215510012000m;
    nfi.NumberDecimalDigits = getNumberDecimalDigits(test.ToString());
    MessageBox.Show(test.ToString(nfi));       private int getNumberDecimalDigits(string aStr)
            {
                int index = 0;
                if (aStr.Contains("."))
                {
                    index = aStr.Split('.')[1].Length;
                }
                else
                {
                    index = 0;
                }            return index;
            }
      

  8.   

    wocaonimabi  牛比人用牛比方法。
    lz是高手,大名就如雷贯耳。
      

  9.   

    decimal b = 1111.245601560000m;
    string str = b.ToString();
      

  10.   

    try..            double a =  1111.245601560000;
                Console.WriteLine(a.ToString("f12"));
      

  11.   

    这主要和所用的数据类型有关.默认的情况有的可以带0,有的则不带,比如decimal类型的用ToString()就可以带出后面的0.
      

  12.   

    to 平民大哥正如你所说,decimal在存储的时候可能会带上精度,有没有方法把其精度取出来?
      

  13.   

    把精度取出来?
    什么意思啊....
    decimal的精度是28到29位.
      

  14.   

    decimal b = 1111.245601560000m;
    比如上面的这个
    我看到的b的值是1111.24560256
    但ToString()的时候 变成了1111.245601560000,它是怎么记住位数的
      

  15.   

    都是高手呀。哈哈。
    但我突然想到了一个问题,变量计算出来的,怎么在它的后面添加一个M的呢。decimal b = 1111.245601560000m;decimal b = 0;
    b = 123/45;
    这样它后面会有个M吗???
      

  16.   

    hbxtlhx(平民百姓) ( ) 信誉:112     顺便问下 ,112是怎么来的,什么条件。我为什么一直是100,而有的人< 100呢????
      

  17.   

    信誉分是原来得的,当贴子提交成FAQ后就可以得到相应的信誉分了.
    如果贴子一直不结或其它一些不正当的行为的时候系统会扣掉信誉分.
    但是现在这个长就不知道有什么规则了.
      

  18.   

    Decimal 值类型表示从正 79,228,162,514,264,337,593,543,950,335 到负 79,228,162,514,264,337,593,543,950,335 之间的十进制数。Decimal 值类型适用于要求使用大量有效的整数及小数位数并且没有舍入错误的财务计算。十进制数是由符号、数值和比例因子组成的浮点值,数值的每一位的范围都是 0 到 9,比例因子指示分隔数值的整数和小数部分的浮点小数点的位置。 Decimal 值的二进制表示形式由 1 位符号、96 位整数以及比例因子组成,比例因子用作 96 位整数的除数并指定整数的哪一部分为小数。比例因子隐式地定为数字 10 的幂,指数范围从 0 到 28。因此,Decimal 值的二进制表示形式为:((-296 到 296) / 10(0 到 28)),其中 -296-1 等于 MinValue,而 296-1 等于 MaxValue。
      

  19.   

    decimal b;
    b = 123 / 45;Response.Write(b.ToString() + "@@");
    输出  2@@
    怎样让他完整的保留后面的小数
      

  20.   

    decimal a = 111.12452620000M;
            decimal b,d,f;
            double c,j,s;
            d = 123;
            f = 45;
            j = 123;
            s = 45;
            b = 123 / 45;
            Response.Write("b=" + b.ToString() + "<br>");
            Response.Write("b=" + b.ToString("f4") + "<br>");
            c = 123 / 45;
            Response.Write("c=" + c.ToString() + "<br>");
            Response.Write("c="+c.ToString("f4") + "<br>");
            b = d / f;
            Response.Write("b=" + b.ToString() + "<br>");
            c = j / s;
            Response.Write("c=" + c.ToString() + "<br>"结果:
    b=2
    b=2.0000
    c=2
    c=2.0000
    b=2.7333333333333333333333333333
    c=2.73333333333333