问题是这样:
现在 parame[5].Value 是从数据库返回的output参数带有两位小数的值,如:46.28
我这如果以如下方式接受的话,得到的money1是46,是四舍五入后的,怎么样得到确切的46.28呢?? 
decimal money1 = (decimal)parame[5].Value;

解决方案 »

  1.   

    decimal d = 46.28111;string dStr = Math.Round( d,2 ).ToString();结果:dStr == "46.28"
      

  2.   

    double d;   
    double.Parse(String.Format("{0:N}",d)); double x = double.Parse("");
      double y = x % 0.01;
      double z = x - y;
      

  3.   

    或者这种方法,不过要转换数据类型
    decimal a = 46.28111;
    string result=a.ToString("#0.00");
    输出result=46.28
      

  4.   

                decimal d = 46.28111m;
                Console.WriteLine(d.ToString("#0.00"));
      

  5.   

    decimal money1 = Decimal.Parse(parame[5].Value.ToString("#0.00"));
      

  6.   

    Console.WriteLine(你的变量.ToString("#0.00"));
    tosting()方法里有很多转换格式的。  
      

  7.   

    “ToString”方法没有采用“1”个参数的重载
      

  8.   

    decimal d = 46.28111;
    在这句话时后面的两位就已经没有了
      

  9.   


    3楼的double d=45.123456;
    MessageBox.Show(double.Parse(String.Format("{0:N}", d)).ToString());
      

  10.   

    参数parame[5]你设置其精度值了没有
      

  11.   

    看了这个帖子就解决了问题
    http://www.cnblogs.com/terryding/archive/2009/03/26/1060938.html