2011-09-18 173 views
9

Así que tengo algunos campos que provienen del formulario. Aquí puede escribir 0.3 e insertará 0.3 en la base de datos. ¿Escribe 0,3? Simplemente insertará "0".Cambiar coma a punto, trabajando con decimales en php

$product['protein']; // 0,3 

Así que, ¿cómo puedo reemplazar una coma por un punto?

Respuesta

28

Pruebe la función de PHP str_replace():

$product['protein'] = str_replace(',', '.', $product['protein']); 

que debe ser un buen ajuste.

Se podría pensar en utilizar number_format():

number_format($value, $numberOfDecimals, $charaForDecimalPoint, $charForThousandsSeparator) 

pero en su caso no se aplicaría, debido al hecho de que su valor inicial ("0,3") podría no ser reconocida como una número. De hecho, el punto decimal para un valor numérico debe ser un punto (".").

Use number_format solo si su valor inicial es un número verdadero.

+0

Es un problema cuando la gente/máquinas empiezan a introducir números con separadores de miles, como 1.337,42 - un problema Realmente me enfrenté al valor resultante es 1.333742 en php - un factor de 1000 incorrecto. –

3
$product['protein'] = str_replace(",",".",$product['protein']) 

Para obtener más información sobre la visita de la función str_replace: http://uk.php.net/str_replace

1

tratar

$product['protein'] = str_replace(",",".",$product['protein']) 
Cuestiones relacionadas