插入数据库之前的PHP格式编号

时间:2015-09-07 18:55:35

标签: php mysql

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

1.000.000,00(100万巴西雷亚尔和#34;巴西雷亚尔")

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

我怎样才能使用PHP number_format()

谢谢!

修改

如果number_format()不是我要找的功能,那么在这种情况下最适合使用的是什么?

此外,即使用户值为100.000,00

,我也需要帮助找到解决方案

5 个答案:

答案 0 :(得分:3)

  1. 你不能用数字格式做到这一点,它可以以其他方式工作。
  2. 你做的事情是不好的做法,View层应该将原始数据发送到Controller - 如果你使用一些高级的javascript组件来表示用户格式化的数字,那很好,但是底层的表单控件应该发送原始数据,即10000000.00
  3. 现在,如果我所说的任何内容都不适用于此特定时刻,并且考虑到您发送的此格式是固定的(点数为千位分隔符,小数点分隔符为昏迷),则可以清除使用简单的str_replace值。

    但是,诀窍是用空字符串替换第一个点,然后用点“昏迷”。

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

    知道了吗?

    但要知道你所做的是糟糕的做法和错误的实施,最终,它会在a **中咬你。

答案 1 :(得分:2)

最简单的方法是使用str_replace()函数:

<?php
$p = '1.000.000,00';
$p = str_replace('.', '', $p);
$p = str_replace(',', '.', $p);
echo $p;

答案 2 :(得分:2)

<?php
$number  = '1.000.000,00';
$replaced_number = str_replace(array('.',','), array('',''), $number);
echo number_format($replaced_number,2,'.','');
?>

答案 3 :(得分:0)

首先用str_replace替换(。)和(,)by&#39;&#39;然后使用以下函数

number_format($replaced_number,$decimal)

答案 4 :(得分:0)

如果您查看php.net,您将很容易看到正确的语法: number_format($号,2, '', '') 第一个参数是您的情况下为2的小数位数。 第二个是用于小数分隔符的符号,第三个是用于数千个的符号,在你的情况下将是什么。