当前位置: 首页 > 面试题库 >

当您在mysql上需要大于20的整数时该怎么办?

皇甫飞飙
2023-03-14
问题内容

好像BIGINT是MySQL上可用的最大整数,对不对?

例如,当您需要存储BIGINT(80)时该怎么办?

为什么在某些情况下,例如Twitter API文档中的某个地方,他们建议我们将这些大整数存储为varchar

选择使用一种类型而不使用另一种类型的真正原因是什么?


问题答案:

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

出现此限制的原因是底层硬件可以相对快速地处理本机格式整数,而数字的文本版本(倾向于)需要一次处理一位。

如果您想要一个大于最大64位无符号整数的数字,18,446,744,073,709,551,615则需要将其存储为varchar(或其他文本字段),并希望您不需要对其进行太多的数学处理。

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



 类似资料:
  • 问题内容: 我正在尝试做一个欧拉计画问题,但它涉及到添加一个非常大的数字。(100!) 使用Java int和long太小。 谢谢你的建议 问题答案: BigInteger类 看起来可能是您想要的。

  • 在我的表中,有一个单元格在没有与表交互的情况下不会更新。 我已经在这里找到了原因Java:setCellValuefactory;Lambda vs.PropertyValueFactory;优点/缺点 我的问题是,cells项的默认值是并且我希望我的单元格包含“---”,只要该项具有此默认值。更新项目时,我希望单元格包含当前日期字符串。 项目类别: 在我的CellFactory中,我设置了新值:

  • 问题内容: 我有两个字段,仅当两个字段都不存在时才是可选的: 现在,需要大于。如何包含此过滤器? 问题答案: 有 没有内置的验证 ,它可以让你比较字段值一样,在 Laravel ,所以你需要实现一个 自定义的验证 ,这将让你重新使用验证需要的地方。幸运的是,Laravel使编写自定义验证器 变得非常容易 。 首先在您的 AppServiceProvider中 定义新的验证器: 现在,您可以在 $

  • 处理大于Long的整数时。MAX_VALUE为什么要在双精度上使用BigInteger对象?long的最大值为2^63-1,而double的最大值约为1.7*10^308。如果将double当作整数使用,而不是为数字创建一个完整的对象,岂不是更容易且使用更少的资源?

  • 我需要一个明确的解释这一点,即使我读了这个关于差异的链接,但没有明确的清晰。那么有没有人可以简单地用代码向我解释一下呢?