2010-01-04 39 views
6

Estoy haciendo una pequeña aplicación para agregar precios y decimales. Los puntos son normales para usar con decimales, pero ¿cómo puedo escribir un número decimal con coma como entrada (543,35 en vez de 543,35) y luego cambiarlo con el punto de la base de datos (mysql)? Luego imprímalo desde la base de datos con la coma. La razón es que la coma (,) es más utilizada en Finlandia que el punto (.) Cuando se escriben números decimales.Número decimal con coma en lugar de punto (php y sql)

¡Muchas gracias!

Samuel

+0

¿Qué base de datos está usted utilizando? –

+0

Si está presentando en más de un formato, este es un problema de presentación por lo que se manejaría mejor en PHP. De lo contrario, puede formatear el valor de SQL. –

+0

Estoy usando mysql –

Respuesta

6

no necesita hacer nada en el extremo sql. que desea dar formato al valor decimal en php (esto supone php4/php5): Establecer el tercer parámetro $ dec_point a ''

// string number_format (float $number , int $decimals , string $dec_point , string $thousands_sep) 
<?php 

$number = 1234.56; 

// French notation 
$nombre_format_francais = number_format($number, 2, ',', ' '); 
// 1 234,56 

$number = 1234.5678; 

// english notation without thousands seperator 
$english_format_number = number_format($number, 2, '.', ''); 
// 1234.57 

?> 

fuente: http://php.net/manual/en/function.number-format.php

Salud!

+0

¡Gracias! Ahora puedo introducir el número con la coma 12,50 en lugar de 12.50 (más fácil para el teclado finlandés) para que pueda ser reconocido con los decimales? –

+0

Derecha. Solo tiene que preocuparse por el formato del número en la interfaz y dejar que MySQL lo almacene como de costumbre. El número subyacente sigue siendo el mismo sin importar cómo lo muestre. – mirezus

0

Como se ha dicho, lo mejor es guardar el valor como un flotador y luego formatearlo para su visualización. Como alternativa al number_format() previamente sugerido, puedes probar money_format() http://us.php.net/manual/en/function.money-format.php Aunque no funciona en un entorno de Windows si eso es importante para ti.

+0

Vaya, creo que leí tu pregunta demasiado rápido ... no necesitas el formato de moneda, ¿o sí? –

+0

Sí, no es necesario el formato de moneda. Lo que todavía estoy buscando, ¿es que hay alguna posibilidad de escribir un número decimal con una coma como entrada? No sé si puedo formular mi pregunta de la manera correcta. –

0

No, no se admite el uso de coma como un separador decimal para las operaciones aritméticas. Filtra tu entrada y reemplaza la coma por un punto, luego formatea tu salida como desees.

1

la función PHP number_format es lo que necesita:

number_format(5.50, 2, ','); 

... debe hacer el truco.

+0

No, no lo es, vuelve a leer. –

+0

Ooops, en realidad no es ... mi mal. (Por un lado, no siempre me sorprende ver a la gente comentar las respuestas incorrectas sin proporcionar una correcta. Vamos chicos, traen mucho a la comunidad :) – Nicolas

10
$input = '5,50'; 
$output = str_replace(',', '.', $input); 
var_dump($output); // string(4) "5.50" 
$number = (float)$output; 
var_dump($number); // float(5.5) 
+0

¡Gracias! ¡Una respuesta muy buena y clara! –

Cuestiones relacionadas