请教``我先将kkkkk = 1.00100输出为1.00100,而不省去1.00100后面的两个0
如下代码:
object kkkkk = 1.00100;
Console.WriteLine("{0:g}", Convert.ToDecimal(kkkkk));
Console.Read();上面的代码输出的是1.001,请问有什么办法可以输出1.00100,
再说说我已经试过的方法
1.在1.00100后面加个m,这个方法是不行的,因为数据读出来的时候不是decimal类型,而通过Convert.ToDecimal()转换后,后面那两个0就被转掉了。
2.通过格式化字符符{0:f5},这个方法也是肯定不行的,难道每次都去计算浮点数的位数,然后再生成格式化字符啊这样如果这个操作出现了1W次``那不是死人

解决方案 »

  1.   

    学习~Tostring() 都会把后面的0转掉。还能有什么办法??
      

  2.   

    转C#中的float是CTS(Common Type System)的System.Single的别名。在VB.NET中,同样的数据类型就命名为Single.有用户发现下面这条指令: Console.WriteLine(1000.09009F.ToString("F5")); 得到的结果是1000.09000而不是显而易见的1000.09009.为什么?原因是System.Single的精度有限,是7位有效数字。在这样的精度范畴里面,上面的输出结果是正确的。如果需要更高的精度,可以考虑 System.Double或者Decimal.参考:Decimal Constructor (Single); Single Structure.
      
      

  3.   

    不是精度的问题``是要原样输出``
    比如我的object k; k = 0.000;
    我也要原样输出为0.000;比如k里面是17.80320,输出为17.80320to sdl2005lyx:
    不是固定的
      

  4.   

    你让object k; k = "0.000";
    就可以了
    object k; k = 0.000;好像是数字
      

  5.   

    自己定义一个类型,不要用decimal.
      

  6.   

    转换为双精度型,再Tostring()就OK了。
      

  7.   

    使用格式化输出,或者ToString()!