You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确将字符串"4.20833333333333E-03"解析为Double类型?

解决VB.NET中科学计数法字符串解析错误的问题

你的解析错误源于系统区域文化设置:如果当前区域格式以逗号作为小数点分隔符,Double.Parse会把字符串里的点(.)识别成千位分隔符,从而得到错误结果。

以下是两种正确的解析方案:

方案一:使用不变文化直接解析

指定InvariantCulture(其小数点分隔符为点,匹配目标字符串格式)完成解析:

Dim sNumber As String = "4.20833333333333E-03"
Dim d As Double = Double.Parse(sNumber, Globalization.CultureInfo.InvariantCulture)

方案二:用TryParse做安全解析

如果需要避免解析失败抛出异常,推荐使用Double.TryParse,同时明确指定支持科学计数法的格式规则和不变文化:

Dim sNumber As String = "4.20833333333333E-03"
Dim d As Double
If Double.TryParse(sNumber, Globalization.NumberStyles.Float Or Globalization.NumberStyles.AllowExponent, Globalization.CultureInfo.InvariantCulture, d) Then
    ' 解析成功,d即为正确的0.00420833333333333
Else
    ' 处理解析失败的逻辑
End If

内容的提问来源于stack exchange,提问作者tmighty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 01:20:32