我正在使用 $_POST
将表单值发送到 PHP,然后插入到数据库中,我有一些用于 prices
值的输入,如下所示:
1.000.000,00(100 万巴西雷亚尔)
我需要将它转换为 1000000.00(DECIMAL(10,2) 以插入到数据库中)
我如何使用 PHP number_format()
做到这一点?
谢谢!
编辑
如果 number_format()
不是我正在寻找的函数,那么在这种情况下最好使用什么?
此外,我需要帮助找到解决方案,即使用户值为 100.000,00
最佳答案
- 你不能用数字格式来做到这一点,它以其他方式工作。
- 你做的事情是不好的做法,View 层应该发送原始数据到 Controller - 如果你使用一些高级的 javascript 组件来向用户表示格式化数字,那很好,但是底层表单控件应该发送原始数据,即 10000000.00
现在,如果我向您说明的内容在这个特定时刻不适用,并且考虑到您发送的格式是固定的(点代表千位分隔符,逗号代表小数分隔符),您可以清理使用简单的 str_replace 值。
但是,诀窍是用空字符串替换第一个点,然后用点替换逗号。
str_replace(',', '.',str_replace('.', '', $number));
明白了吗?
但是要知道,你所做的是错误的方法和错误的实现,最终,它会咬你一口。
关于插入数据库前的 PHP 格式数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32444595/