日期:2014-05-17  浏览次数:20397 次

【求助】ToString方法不显示为科学计算法???????
程序里封装了一个字段,object类型,
这个object类型字段是通过(int、float、double等数值类型)装箱得到。
现在我需要将object.tostring()
现在的问题就是,如果数据比较大的话,会把数据显示成科学计算法显示。
如果处理才能原封不动的tostring呢?包括总的位数还有小数点位数。。。

------解决方案--------------------
是不是在装箱之前就以经变成科学计数法了?

如果之前有转换的话,把Convert.ToDouble换成Convert.ToDecimal试试
------解决方案--------------------
ToString("0.0000000")小数点后面几位数,就写几个0
------解决方案--------------------
如果你的数据精度确定的可以推介你这样。。ToString("00.00");格式化一下如果不确定。。。再想想。
------解决方案--------------------
C# code
Convert.ToString()

------解决方案--------------------
C# code
Convert.ToString()

------解决方案--------------------
你经过了装箱 和 拆箱操作,其实在装箱的时候系统就已经处理了,该近位的进位,该指数的指数

后面的一切操作都无济于事

因此,你要改变源头,而不是数据发生变化了,再去还原,本身你要得到原先的不变值,那么就不该这么装箱操作,直接保存成字符串就可以了
------解决方案--------------------
直接让这个字段是字符型的,转成数字的时候可以随便处理。
------解决方案--------------------
http://www.cnblogs.com/dudu/archive/2011/11/21/2257100.html
------解决方案--------------------
探讨

float f = 1234567891.24F;
Console.WriteLine(f.ToString("0.00"));
你看这个数会变成什么
会变成 1234568000.00
这明摆着进位了。

------解决方案--------------------
你的数据无非就是两个整数字中间加了一个小数点而已
实在不行就先按小数点拆开 把两个整数转化为 ToDecimal 然后再转化为 tostring()相加肯定是不会出现问题的既不会成为科学计算法也不会把你小数点后面的数字干掉