如何将负数字符串转换为十进制值?

9

我试图将一个负数字符串,比如"-23.27",转换为一个小数点值。问题是有时候我会得到括号中的负数值,比如"(23.27)"

我已经编写了控制括号并获取负格式小数点值的代码,但当使用"-23.27"运行相同的代码时,它返回一个"输入字符串的格式不正确"的错误。这是我的代码。任何帮助将不胜感激。

decimal ValueN = (decimal.Parse("-23.27", 
                  System.Globalization.NumberStyles.AllowParentheses | 
                  System.Globalization.NumberStyles.AllowLeadingWhite | 
                  System.Globalization.NumberStyles.AllowTrailingWhite | 
                  System.Globalization.NumberStyles.AllowThousands));

NumberStyles.Number | NumberStyles.AllowParentheses数字样式.数字 | 数字样式.允许括号 - Steve
3
你忘记了一些东西(正负号和小数点)。只需使用Number | AllowParentheses。 - Hans Passant
1个回答

25

您缺少AllowLeadingSign标志。

decimal ValueN= (decimal.Parse("-23.27",  
                 System.Globalization.NumberStyles.AllowParentheses |  
                 System.Globalization.NumberStyles.AllowLeadingWhite | 
                 System.Globalization.NumberStyles.AllowTrailingWhite | 
                 System.Globalization.NumberStyles.AllowThousands | 
                 System.Globalization.NumberStyles.AllowDecimalPoint |
                 System.Globalization.NumberStyles.AllowLeadingSign));

它起作用了。我不知道我怎么错过了那个。非常感谢你。 - Nishantha Maduranga
2
作为一个附注,当解析“-23.27”时,我需要使用“System.Globalization.NumberStyles.AllowDecimalPoint”,否则会出现异常。 - Jason Evans
好的,我会添加进去。 - shree.pat18

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接