无法在 C# 中将字符串转换为 int 类型,给出错误 - 输入字符串格式不正确

本文关键字:字符串 出错 错误 不正确 格式 输入 类型 int 转换 | 更新日期: 2023-09-27 18:31:06

我想将字符串转换为 int。我有这样的字符串值"45,454,566.00".类型转换抛出错误时

输入字符串格式不正确

int GrandTotalInWords = Int32.Parse(grandtotal);//error
grandTotalInWords.InnerHtml = ConvertNumbertoWords(GrandTotalInWords);

无法在 C# 中将字符串转换为 int 类型,给出错误 - 输入字符串格式不正确

首先,int.Parse使用不包含任何千和小数分隔符样式的NumberStyles.Integer

其次,您的CurrentCulture可能不会,用作NumberGroupSeparator和/或可能不会将.用作NumberDecimalSeparator

只需指定您的区域性设置和数字样式;

int GrandTotalInWords = int.Parse(grandtotal, 
                        NumberStyles.AllowDecimalPoint | NumberStyles.AllowThousands, 
                        CultureInfo.InvariantCulture);

顺便说一下,如果您的分数部分并不总是零,则使您的string不是int的有效格式。在这种情况下,您可能需要将其解析为浮点类型,如 double as;

double GrandTotalInWords = double.Parse(grandtotal, 
                           NumberStyles.AllowDecimalPoint | NumberStyles.AllowThousands, 
                           CultureInfo.InvariantCulture);