如何在其中存储带有逗号的货币值?

Posted

技术标签:

【中文标题】如何在其中存储带有逗号的货币值?【英文标题】:How to store currency values with commas in them? 【发布时间】:2014-09-07 05:36:13 【问题描述】:

如何存储带有逗号的货币值?我正在使用带有 mysql 和 Apache 的 phpMyAdmin 来创建数据库,我需要在其中输入带有逗号的货币值以及 % 值。除了 Varchar 之外,我可以使用其他数据类型吗?顺便说一句,我对 Php 和 SQL 很陌生,所以不要对我大喊大叫。谢谢你的帮助!

【问题讨论】:

dev.mysql.com/doc/refman/5.0/en/data-types.html Best data type to store money values in MySQL 的可能重复项 - 简短回答是 DECIMAL(10,2) 不要这样做:用小数点正确存储数字;并且仅添加 % 或将小数点更改为小数点以用于显示目的:请注意,货币值最好存储为整数而不是浮点数 @FDL 谢谢我没有意识到还有另一种形式可能是因为我没有指定我想在我的问题中存储货币值 How to store currency values with commas in them? 听起来你在给我指定货币价值 【参考方案1】:

$您可以将逗号 (,) 替换为点 (.) 并使用数据类型 float/double。当然,这只有在您不使用逗号作为 1k 分隔符时才有效。

http://php.net/manual/en/function.str-replace.php

$numP = str_replace(",", ".", $numC);

之后可以显式解析数字。

$numF = floatval($numP);

doubleval() 是一个别名。我不知道这是否是最佳做法,但它确实有效。 但是,您不应该将其用于金融应用程序。

【讨论】:

如果我使用逗号作为 1k 分隔符,我将如何存储值,我应该完全删除它们吗?抱歉这个愚蠢的问题 千位分隔符不是数字的一部分,它们是出于显示目的进行格式化....删除它们....如果您有逗号作为千位分隔符和小数分隔符,那么你有更多的问题

以上是关于如何在其中存储带有逗号的货币值?的主要内容,如果未能解决你的问题,请参考以下文章

无法解析逗号分隔的字符串数量。最初带有货币符号

在数据库的逗号列表中查找特定值

如何使用逗号分隔值拆分列并存储在 PySpark Dataframe 中的数组中?如下所示

如何将表中列中的逗号分隔值放入 SQL IN 运算符?

如何将包含自然值和货币的字段相乘?

如何更改字符串中分隔两种货币的逗号?