为什么 AllowExponent 使 Decimal.Parse 无法解析正常数字?
Why does AllowExponent makes Decimal.Parse fail to parse normal numbers?
我试过这些
Dim a = Decimal.Parse("0.00001", System.Globalization.NumberStyles.Any)
Dim c = Decimal.Parse("0.00001")
Dim cb = Decimal.Parse("0.00001", System.Globalization.NumberStyles.AllowExponent)
第一个代码有效。
第二行有效。
第三行不行
好像我不提numberstyles,numberstyles默认是什么东西。默认为什么?
它基本上允许解析普通数字 (".00001")。但是,如果将 System.Globalization.NumberStyles.AllowExponent 指定为参数,则该功能将关闭。
为什么会这样?
如果我们使用 Decimal.parse 的正常重载,没有附加参数,NumberStyles 的默认值是多少?
除了整数之外,您不会写出带有指数的数字。请参阅我上面的评论。
Dim cb = Decimal.Parse("1e-5", System.Globalization.NumberStyles.AllowExponent)
MessageBox.Show(cb.ToString)
Dim ab = Decimal.Parse("1e-5", System.Globalization.NumberStyles.Any)
MessageBox.Show(ab.ToString)
两个消息框都显示 .00001。
我只想根据 Parsing decimal in scientific notation
添加
System.Globalization.NumberStyles.AllowExponent
不允许输入小数。
可能是单位直觉的。
因此,
cb = Decimal.Parse("0.00001", System.Globalization.NumberStyles.AllowExponent)
会抛出错误,因为解析器无法解析 .
我不知道为什么要这样设计。那么我们将如何解析 4.5e10,例如。
您需要其他选项。 AllowExponent
似乎正是这样做的。允许指数,仅此而已。
我试过这些
Dim a = Decimal.Parse("0.00001", System.Globalization.NumberStyles.Any)
Dim c = Decimal.Parse("0.00001")
Dim cb = Decimal.Parse("0.00001", System.Globalization.NumberStyles.AllowExponent)
第一个代码有效。
第二行有效。
第三行不行
好像我不提numberstyles,numberstyles默认是什么东西。默认为什么?
它基本上允许解析普通数字 (".00001")。但是,如果将 System.Globalization.NumberStyles.AllowExponent 指定为参数,则该功能将关闭。
为什么会这样?
如果我们使用 Decimal.parse 的正常重载,没有附加参数,NumberStyles 的默认值是多少?
除了整数之外,您不会写出带有指数的数字。请参阅我上面的评论。
Dim cb = Decimal.Parse("1e-5", System.Globalization.NumberStyles.AllowExponent)
MessageBox.Show(cb.ToString)
Dim ab = Decimal.Parse("1e-5", System.Globalization.NumberStyles.Any)
MessageBox.Show(ab.ToString)
两个消息框都显示 .00001。
我只想根据 Parsing decimal in scientific notation
添加System.Globalization.NumberStyles.AllowExponent
不允许输入小数。
可能是单位直觉的。
因此,
cb = Decimal.Parse("0.00001", System.Globalization.NumberStyles.AllowExponent)
会抛出错误,因为解析器无法解析 .
我不知道为什么要这样设计。那么我们将如何解析 4.5e10,例如。
您需要其他选项。 AllowExponent
似乎正是这样做的。允许指数,仅此而已。