MYSQL中可以存储整数或双值的字段类型是什么 我的意思是在同一列中你可以存储整数||双打? 这是什么类型或我该怎么做?
任何努力都将得到赞赏。
答案 0 :(得分:1)
没有符合您要求的原生MySQL数据类型。
通常,DECIMAL数据类型适合账单,尽管这是一个精确的十进制值,而不是浮点型近似值。由于它具有固定的小数点,因此可以存储的值范围比DOUBLE类型小几个数量级。
一个选项是使用VARCHAR
列,并存储值的字符表示。
另一个(笨拙的)选项是使用BIT(64)
列。
但似乎无论使用哪种方法,您都需要某种类型的指标来确定存储哪种类型的值。这两种方法都存在一些缺点。一个很大的缺点是,这些将允许存储“无效”值。
我会考虑的方法(如果我有这个要求)将使用两列,其中一列INTEGER
,另一列DOUBLE
,并指定优先级,并允许NULL值INTEGER列表示该值存储在DOUBLE
列中。
答案 1 :(得分:0)
INT - 可以是有符号或无符号的正常大小的整数。如果已签名,则允许范围为-2147483648至2147483647.如果为无符号,则允许范围为0到4294967295.您可以指定最多11位数的宽度。
DOUBLE(M,D) - 无法无符号的双精度浮点数。您可以定义显示长度(M)和小数位数(D)。这不是必需的,默认为16,4,其中4是小数位数。对于DOUBLE,十进制精度可以达到53位。 REAL是DOUBLE的同义词。
答案 2 :(得分:0)
您可以使用双数据类型,并使用您的语言(php,ja)将该值显示为整数。
答案 3 :(得分:0)
我认为mysql中没有这样的数据类型。可能您可能需要varchar,并在服务器端代码(php,java ...)中强制转换为正确的数据类型,但这可能会导致性能开销。我不知道你怎么会有这样奇怪的数据类型要求。如果必须以这种方式存储数据,请考虑添加额外的列以标记数据类型。
答案 4 :(得分:0)
我想您可能会错过了解计算机如何存储数字:数字是整数还是浮点数。处理器算术逻辑单元(ALU)中的每个都有不同的电路。你不能拥有两者兼有的数字。