我有一个数字(仅举一个例子:
"3616,946489653802082229919075063226"
Run Code Online (Sandbox Code Playgroud)
存储在中string。我想将其转换为,decimal但得到OverflowException,因为该值对于十进制而言太长。
我想圆的string转换之前修正错误。
我该怎么做呢?
解析是特定于文化的。因此,可以是十进制或千位分隔符。如果,是千位分隔符,它将被忽略:
"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