Coma en vez de punto pero con todos los decimales Replace

05/04/2010 - 23:31 por Fran | Informe spam
Buenas noches.

Tengo el siguiente valor en una tabla 37,1648309828194 y necesito
pasarlo a 37.1648309828194, es decir cambiar la coma por el punto. He
usado replace(numero, ',','.') pero lo que me devuelve es el número
con el punto pero recortado mostrando solamente 37.1648

¿Cómo puedo hacer para que salga el número entero?

Muchas gracias

Preguntas similare

Leer las respuestas

#1 Miguel Egea
06/04/2010 - 10:51 | Informe spam
Haciendo un casting al tipo de datos apropiado, depende de la precisión que
necesites, cast (replace(xzx) as numeric(18,13)) te valdría para este
caso.. no se si para todos tus números

Saludos Cordiales
Miguel Egea
Solid Quality Mentos
http://www.portalsql.com

"Fran" escribió en el mensaje de
noticias:
Buenas noches.

Tengo el siguiente valor en una tabla 37,1648309828194 y necesito
pasarlo a 37.1648309828194, es decir cambiar la coma por el punto. He
usado replace(numero, ',','.') pero lo que me devuelve es el número
con el punto pero recortado mostrando solamente 37.1648

¿Cómo puedo hacer para que salga el número entero?

Muchas gracias
Respuesta Responder a este mensaje
#2 Fran
06/04/2010 - 13:37 | Informe spam
Hola Miguel.

Acabo de probar lo que me has dicho pero aun me sigue mostrando cuatro
decimales en vez de todos los que quiero. He usado:

CAST(REPLACE(numero, ',', '.') AS numeric(18, 14)) AS dato

Es el hecho de ponerlo con punto cuando recorta la longitud.


On 6 abr, 10:51, "Miguel Egea" wrote:
Haciendo un casting al tipo de datos apropiado, depende de la precisión que
necesites,  cast (replace(xzx) as numeric(18,13)) te valdría para este
caso.. no se si para todos tus números

Saludos Cordiales
Miguel Egea
Solid Quality Mentoshttp://www.portalsql.com

"Fran" escribió en el mensaje de
noticias:



> Buenas noches.

> Tengo el siguiente valor en una tabla 37,1648309828194 y necesito
> pasarlo a 37.1648309828194, es decir cambiar la coma por el punto. He
> usado replace(numero, ',','.') pero lo que me devuelve es el número
> con el punto pero recortado mostrando solamente 37.1648

> ¿Cómo puedo hacer para que salga el número entero?

> Muchas gracias
Respuesta Responder a este mensaje
#3 Miguel Egea
06/04/2010 - 21:07 | Informe spam
En algo no nos estamos entendiendo, si tu pruebas esto.. veras que si que te
muestra todos los números ¿me cuentas el escenario completo? ¿en que
sentencia? ¿es parte de una operación? ¿de donde sale la coma? ¿Es un string
que tiene esa coma?
select cast(replace('37,1648309828194',',','.') as numeric(19,12))

Saludos Cordiales
Miguel Egea
Solid Quality Mentos
http://www.portalsql.com

"Fran" escribió en el mensaje de
noticias:
Hola Miguel.

Acabo de probar lo que me has dicho pero aun me sigue mostrando cuatro
decimales en vez de todos los que quiero. He usado:

CAST(REPLACE(numero, ',', '.') AS numeric(18, 14)) AS dato

Es el hecho de ponerlo con punto cuando recorta la longitud.


On 6 abr, 10:51, "Miguel Egea" wrote:
Haciendo un casting al tipo de datos apropiado, depende de la precisión
que
necesites, cast (replace(xzx) as numeric(18,13)) te valdría para este
caso.. no se si para todos tus números

Saludos Cordiales
Miguel Egea
Solid Quality Mentoshttp://www.portalsql.com

"Fran" escribió en el mensaje de
noticias:



> Buenas noches.

> Tengo el siguiente valor en una tabla 37,1648309828194 y necesito
> pasarlo a 37.1648309828194, es decir cambiar la coma por el punto. He
> usado replace(numero, ',','.') pero lo que me devuelve es el número
> con el punto pero recortado mostrando solamente 37.1648

> ¿Cómo puedo hacer para que salga el número entero?

> Muchas gracias



Respuesta Responder a este mensaje
#4 Fran
06/04/2010 - 23:38 | Informe spam
On 6 abr, 21:07, "Miguel Egea" wrote:
En algo no nos estamos entendiendo, si tu pruebas esto.. veras que si que te
muestra todos los números ¿me cuentas el escenario completo? ¿en que
sentencia? ¿es parte de una operación? ¿de donde sale la coma? ¿Es un string
que tiene esa coma?
select cast(replace('37,1648309828194',',','.') as numeric(19,12))

Saludos Cordiales
Miguel Egea
Solid Quality Mentoshttp://www.portalsql.com

"Fran" escribió en el mensaje de
noticias:



> Hola Miguel.

> Acabo de probar lo que me has dicho pero aun me sigue mostrando cuatro
> decimales en vez de todos los que quiero. He usado:

> CAST(REPLACE(numero, ',', '.') AS numeric(18, 14)) AS dato

> Es el hecho de ponerlo con punto cuando recorta la longitud.

> On 6 abr, 10:51, "Miguel Egea" wrote:
>> Haciendo un casting al tipo de datos apropiado, depende de la precisión
>> que
>> necesites,  cast (replace(xzx) as numeric(18,13)) te valdría para este
>> caso.. no se si para todos tus números

>> Saludos Cordiales
>> Miguel Egea
>> Solid Quality Mentoshttp://www.portalsql.com



Hola de nuevo Miguel.

El número lo obtengo de una formula matemática bastante larga y me
devuelve ese resultado con la coma. He probado tu solución pero no va,
ya que recorta el numero al ponerle delante la función replace. El
caso que luego trabajando en la página asp con ese resultado y
poniendo delante del recordset la función replace si hace lo esperado,
pero en la base de datos sql no me deja.

Un saludo.




>> "Fran" escribió en el mensaje de
>> noticias:

>> > Buenas noches.

>> > Tengo el siguiente valor en una tabla 37,1648309828194 y necesito
>> > pasarlo a37.1648309828194, es decir cambiar la coma por el punto. He
>> > usado replace(numero, ',','.') pero lo que me devuelve es el número
>> > con el punto pero recortado mostrando solamente 37.1648

>> > ¿Cómo puedo hacer para que salga el número entero?

>> > Muchas gracias
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida