插入数据库前的 PHP 格式数字

标签 php mysql

我正在使用 $_POST 将表单值发送到 PHP,然后插入到数据库中,我有一些用于 prices 值的输入,如下所示:

1.000.000,00(100 万巴西雷亚尔)

我需要将它转换为 1000000.00(DECIMAL(10,2) 以插入到数据库中)

我如何使用 PHP number_format() 做到这一点?

谢谢!

编辑

如果 number_format() 不是我正在寻找的函数,那么在这种情况下最好使用什么?

此外,我需要帮助找到解决方案,即使用户值为 100.000,00

最佳答案

  1. 你不能用数字格式来做到这一点,它以其他方式工作。
  2. 你做的事情是不好的做法,View 层应该发送原始数据到 Controller - 如果你使用一些高级的 javascript 组件来向用户表示格式化数字,那很好,但是底层表单控件应该发送原始数据,即 10000000.00

现在,如果我向您说明的内容在这个特定时刻不适用,并且考虑到您发送的格式是固定的(点代表千位分隔符,逗号代表小数分隔符),您可以清理使用简单的 str_replace 值。

但是,诀窍是用空字符串替换第一个点,然后用点替换逗号。

str_replace(',', '.',str_replace('.', '', $number));

明白了吗?

但是要知道,你所做的是错误的方法和错误的实现,最终,它会咬你一口。

关于插入数据库前的 PHP 格式数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32444595/

相关文章:

php - 从 HTTP 重定向到 HTTPS(最好的方法是 .htaccess 或 PHP 重定向代码)

php - $_POST、图像表单和mysql。如何让它们一起工作?

php - 使用 session 错误登录

php - Android:无法在MYSQL中插入数据

javascript - 没有通过ajax获取数据

php - div 内的元素未提交

php - 在 Iframe 中丢失 SSL

mysql - MySQL Cluster OSS 和 CGE 版本的区别

mysql - 将 mysql 数据库中的图像(BLOB)显示到 tkinter 窗口

php - ORDER BY RAND()函数需要很长时间才能在mysql中执行