【问题标题】:How to store integer data with comma in it?如何在其中存储带逗号的整数数据?
【发布时间】:2019-07-05 18:05:40
【问题描述】:

我在用逗号存储整数数据时遇到了一些困难,我有价格,比如 4,600 所以我需要用逗号存储它,但是当我尝试将它作为整数发送时,它会在第一个数字之后被剪切。我试图更改列类型。 BigIntDouble 但它没有任何影响。有什么可能的方法吗?

还尝试将逗号更改为点“。”但是有了这个,mysql终于把“0”删掉了……不知道为什么……

Prices
------
4,500
2,300
1,500

【问题讨论】:

  • 你不能。如果需要,您应该格式化输出。您可以存储为 varchar 但它不会是整数,并且每次您希望在计算中使用它时都必须进行转换。
  • 不要用逗号存储,即使你想用数字格式化功能也可以

标签: mysql


【解决方案1】:

因为您使用的是逗号,MySQL 很可能将数字解释为两个字段,以逗号分隔。例如:

Prices,Unspecified
------,-----------
4     ,500
2     ,300
1     ,500

在有问题的数字中:如果逗号是千位分隔符,请在尝试存储数字之前将其删除(通过字符串替换)。如果是小数点,请将其替换为句点(通过字符串替换)并将其存储为 DOUBLE(或 DECIMAL,如果您需要对大数进行高精度处理)。

如果您想用逗号显示数字,请在从数据库中检索值后使用字符串格式(可能是String.format()sprintf() 以外的数字格式函数)。

【讨论】:

  • 最后我存储了没有逗号的数字,并在获取数据后添加了逗号......我实际上不知道这是最好的解决方案但是,,,是的,我猜没有其他选择, ,,
【解决方案2】:

如果您希望能够使用带有这些数字的 SQL 查询进行计算,那么您需要使用 DECIMAL 类型或使用整数类型并将数字乘以例如存储价格。保存前1000

数字的双精度或任何其他浮点表示不适合价格计算/存储。

如果您使用DECIMAL,则需要将数字从本地格式4,5000 转换为数据库在您将其存储到数据库时所期望的格式,并在您检索数据时将其转换回本地格式。

如果将其存储为字符串,则可以保留本地格式,但这是最糟糕的解决方案,永远不应该使用。

【讨论】:

    猜你喜欢
    • 2019-03-19
    • 2014-09-07
    • 1970-01-01
    • 2018-04-11
    • 2014-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多