在将字符串解析为双倍时,我们面临着一个问题.我们需要将18位数字符串(<123,456,789,012>.<123456>)转换为double.它只返回小数点后的5位数.当我们试图减少数字的数字时,它工作得很好.我们附上了三个不同场景的屏幕截图.变量'S'是输入,retValue是输出值.
请帮助我们将123,456,789,012.123456转换为123456789012.123456
string s = "123,456,789,012.123456";
double retVal;
System.Globalization.CultureInfo cInfo = new System.Globalization.CultureInfo(System.Web.HttpContext.Curr??ent.Session["culture??"].ToString());
retVal = double.Parse(s, NumberStyles.Any, cInfo);
Run Code Online (Sandbox Code Playgroud)
A double的精度最高可达15位,请参阅MSDN:
Double值最多包含15个十进制数字的精度,但内部最多保留17位数.
你应该使用decimal和Decimal.Parse(..)有28-29位有效数字.
| 归档时间: |
|
| 查看次数: |
74 次 |
| 最近记录: |