在转换为数字类型之前将字符串取整

Ann*_*ett 0 c# string

我有一个数字(仅举一个例子:

"3616,946489653802082229919075063226"
Run Code Online (Sandbox Code Playgroud)

存储在中string。我想将其转换为,decimal但得到OverflowException,因为该值对于十进制而言太长。

我想string转换之前修正错误

我该怎么做呢?

Dmi*_*nko 6

解析是特定于文化的。因此,可以是十进制或千位分隔符。如果,是千位分隔符,它将被忽略

"3616,946489653802082229919075063226" -> 3616946489653802082229919075063226m
Run Code Online (Sandbox Code Playgroud)

这个值结束了,decimal.MaxValue因此引发异常

如果,应将其视为小数点分隔符,请让系统知道:

decimal result = decimal.Parse(source, 
  new NumberFormatInfo() { NumberDecimalSeparator = ","});
Run Code Online (Sandbox Code Playgroud)

你会得到 3616.9464896538020822299190751m