use*_*190 4 c# format locale numbers
在C#中,为什么int.TryParse不能解析分号(但double.TryParse可以)?
int i1 = 13579;
string si1 = i1.ToString("N0"); //becomes 13,579
int i2 = 0;
bool result1 = int.TryParse(si1, out i2); //gets false and 0
double d1 = 24680.0;
string sd1 = d1.ToString("N0"); //becomes 24,680
double d2 = 0;
bool result2 = double.TryParse(sd1, out d2); //gets true and 24680.0
Run Code Online (Sandbox Code Playgroud)
???
您必须指定允许NumberStyles,在将字符串解析回数字时会考虑到这一点.
确定传递给整数和浮点数字类型的Parse和TryParse方法的数字字符串参数中允许的样式.
这将返回true并存储预期的数字i2:
bool result1 = int.TryParse(si1,
NumberStyles.AllowThousands, CultureInfo.CurrentCulture.NumberFormat, out i2);
Run Code Online (Sandbox Code Playgroud)
您可能还想看看其他NumberStyles选项.例如,NumberStyles.Number允许数千,小数点,空格等.
int.TryParse(如果未指定)的默认值为NumberStyles.Integer,仅允许前导符号,前导和尾随空格.
double.TryParseis 的默认值NumberStyles.Float| NumberStyles.AllowThousands,允许前导符号和空格,以及数千,指数和小数点.
| 归档时间: |
|
| 查看次数: |
925 次 |
| 最近记录: |