use*_*757 19 .net tostring rounding
如何在转换为字符串时防止我的double值被舍入?我试过两个Convert.ToString并且ToString()得到了相同的结果.
例如,我的double可能看起来像77.987654321,并且两个字符串转换转换为77.98765.我需要保持值的精度.
Sim*_*ens 24
默认情况下,该.ToString()方法Double返回15位精度.如果您想要内部保存double值的完整17位数,则需要将"G17"格式说明符传递给方法.
String s = value.ToString("G17");
Run Code Online (Sandbox Code Playgroud)
来自MSDN文档:
默认情况下,返回值仅包含15位精度,但内部最多保留17位数.如果此实例的值大于15位,ToString将返回PositiveInfinitySymbol或NegativeInfinitySymbol而不是预期的数字.如果您需要更高的精度,请指定格式为"G17"格式规范,它始终返回17位精度,或"R",如果数字可以用该精度表示,则返回15位数,如果数字只能表示,则返回17位数以最大精度表示.
Tho*_*mas 14
尝试类似的东西
myDouble.ToString("R")
Run Code Online (Sandbox Code Playgroud)
另请参见往返("R")格式说明符:
往返("R")格式说明保证被转换成字符串的数值将被解析回到相同的数值.
Jon Skeet的DoubleConverter类有一个ToExactString()方法,它将double的精确值作为字符串返回.
http://www.yoda.arachsys.com/csharp/DoubleConverter.cs
| 归档时间: |
|
| 查看次数: |
14348 次 |
| 最近记录: |