3 回答
TA贡献1817条经验 获得超6个赞
这是一个浮点数,您必须告诉它:
decimal d = Decimal.Parse("1.2345E-02", System.Globalization.NumberStyles.Float);
TA贡献1830条经验 获得超3个赞
如果您指定,它将起作用NumberStyles.Float:
decimal x = decimal.Parse("1.2345E-02", NumberStyles.Float);
Console.WriteLine(x); // Prints 0.012345
我不能完全确定为什么默认情况下不支持此功能-默认值为use NumberStyles.Number,它使用AllowLeadingWhite,AllowTrailingWhite,AllowLeadingSign,AllowTrailingSign,AllowDecimalPoint和AllowThousands样式。可能与性能有关;我想指定一个指数是相对罕见的。
TA贡献1815条经验 获得超6个赞
除了指定NumberStyles外,我还建议您使用decimal.TryParse函数,例如:
decimal result;
if( !decimal.TryParse("1.2345E-02", NumberStyles.Any, CultureInfo.InvariantCulture, out result) )
{
// do something in case it fails?
}
作为NumberStyles的替代方法,只要确定格式,任何人都可以使用特定的集合。例如:
NumberStyles.AllowExponent | NumberStyles.Float
- 3 回答
- 0 关注
- 493 浏览
添加回答
举报