未处理的异常:FormatException:Flutter 中无效的 radix-10 数字(字符 1)

Unhandled Exception: FormatException: Invalid radix-10 number (at character 1) in Flutter

我正在尝试将字符串转换为 int,但它抛出异常“未处理的异常:FormatException:无效的 radix-10 数字(在字符 1 处)”

String aa = "627a32b69018c4b90f77af19";
int.parse(aa);

如何解决这个问题?

传递的字符串不是数字,因为它包含 non-digit 个字符,例如 af

您似乎喜欢将输入字符串解析为十六进制字符串,在这种情况下,请在您的代码中提供基数(基数)值。

以下片段产生 3.047725939849963e+28 的输出。

void main() {
  String aa = "627a32b69018c4b90f77af19";
  int? test = int.parse(aa, radix: 16);
  
  print("$test");
}

不过,你的数字好像很大(10^28)。结果超出了int的范围,最多64位,32位JavaScript。 (more)

在这些情况下最好使用 BigInt,它支持任意大的整数。