转换字符串中结尾为负号的数字

moi*_*oik 0 c# numbers

从MSDN文档中,我应该使用NumberFormatInfoNumberNegativePattern属性设置负数值的预期模式。

所以我尝试了:

var format = new NumberFormatInfo {NumberNegativePattern = 3};
Console.WriteLine(Convert.ToDouble("1.000-", format));
Run Code Online (Sandbox Code Playgroud)

但是我总是收到FormatException,说“输入字符串的格式不正确。”。我也尝试使用NumberFormatInfo.InvariantInfo进行格式化-结果相同。

Jon*_*eet 5

您在这里不需要格式-它看起来NumberNegativePattern仅在格式化时使用,而不是解析,然后仅用于N格式。但是,这有一个NumberStyles价值:

Console.WriteLine(double.Parse("1.000-", 
    NumberStyles.AllowTrailingSign | NumberStyles.AllowDecimalPoint));
Run Code Online (Sandbox Code Playgroud)