20位数字的数字转换

本文关键字:数字 转换 20位 | 更新日期: 2023-09-27 17:57:40

嗨,我有一个包含20个字符的数字,如下34432523434234423434所示,我尝试使用long,UInt64进行转换,但仍然得到了一个异常Value was either too large or too small,所以有人能帮助我如何转换这个值

20位数字的数字转换

您的值实际上是65位长,所以无论您如何更改其类型,它都不适合64位变量。

2**64      = 18446744073709551616
your value = 34432523434234423434

大整数实际上不限于20位,它们仅限于可以用64位表示的数字(例如,数字9999999999999999不是有效的大整数,尽管它有20位长)。

有这种限制的原因是,底层硬件可以相对快速地处理原生格式整数,而数字的文本版本(往往)需要一次处理一位数字。

如果你想要一个大于最大64位无符号整数18446744073709551615的数字,那么你需要将其存储为字符串(或其他文本字段),并希望你不需要对其进行太多数学运算

或者,您可以查看范围较大但精度较低的浮点数字,或者应该能够为整数值提供65位数字的十进制数字,以十进制(65,0)作为列类型。