parte entera y parte decimal

28/05/2008 - 23:09 por Fabián | Informe spam
Por favor, necesito separar un double en parte entera y parte decimal,
estoy aplicando el siguiente código y no tengo resultados...

// un valor xx
double valor;
double parteEntero;
double parteDecimal;

valor = xx;
parteEntero = System.Math.Truncate(Valor);
parteDecimal = valor - parteEntero;

Esto no me dá resultado, que puedo hacer ?


Fabián.
Principiante.

Preguntas similare

Leer las respuestas

#1 RFOG
29/05/2008 - 09:52 | Informe spam
int ent=(int)valor;
double dec=valor-ent;

Puedes tener algo de pérdida de precisión en la parte decimal por el
formato, pero básicamente es eso. Y encima sin operaciones matemáticas
gordas (creo que hay una instrucción en ensamblador que convierte un valor
en coma flotante en entero)...

Microsoft Visual C++ MVP
==Mi blog sobre programación: http://geeks.ms/blogs/rfog
Momentos Leves: http://momentosleves.blogspot.com/
Cosas mías: http://rfog.blogsome.com/
Libros, ciencia ficción y programación
¿Pero qué es la vida de un literato o de un hombre de ciencia, y donde
hallaremos su historia? en sus obras.

"Fabián" wrote in message
news:
Por favor, necesito separar un double en parte entera y parte decimal,
estoy aplicando el siguiente código y no tengo resultados...

// un valor xx
double valor;
double parteEntero;
double parteDecimal;

valor = xx;
parteEntero = System.Math.Truncate(Valor);
parteDecimal = valor - parteEntero;

Esto no me dá resultado, que puedo hacer ?


Fabián.
Principiante.
Respuesta Responder a este mensaje
#2 Quim
29/05/2008 - 10:07 | Informe spam
Hola.

Yo lo hago de esta forma:

int valorentero = (int)valororiginal;
double valordecimal = valororiginal - valorentero;

Pude afectar a la precisión de la parte decimal.

Saludos

"Fabián" escribió en el mensaje
news:
Por favor, necesito separar un double en parte entera y parte decimal,
estoy aplicando el siguiente código y no tengo resultados...

// un valor xx
double valor;
double parteEntero;
double parteDecimal;

valor = xx;
parteEntero = System.Math.Truncate(Valor);
parteDecimal = valor - parteEntero;

Esto no me dá resultado, que puedo hacer ?


Fabián.
Principiante.
Respuesta Responder a este mensaje
#3 Harvey Triana
29/05/2008 - 17:33 | Informe spam
En terminos de cadenas podría ser:

using System.Globalization;

private void BreakNumber(double p, out long i, out long d)
{
string s = p.ToString();
string ds =
CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator;
string gs =
CultureInfo.CurrentCulture.NumberFormat.NumberGroupSeparator;
int ids = s.IndexOf(ds);
s.Replace(gs, "");
if (ids >= 0)
{
i = long.Parse(s.Substring(0, ids));
d = long.Parse(s.Substring(ids + 1));
}
else
{
long.TryParse(s, out i);
d = 0;
}
}

// EJEMPLO
protected void Button1_Click(object sender, EventArgs e)
{
double p = 123.45678998765D;
long i;
long d;
BreakNumber(p, out i, out d);

Label1.Text = string.Format("p={0} i={1} d={2}", p, i, d);
}

Usé long para el resultado, aunque string es una mejor opción, si supongo
para que quieres la función.

<Harvey Triana />
http://vexpert.mvps.org


"Fabián" escribió en el mensaje de
noticias news:
Por favor, necesito separar un double en parte entera y parte decimal,
estoy aplicando el siguiente código y no tengo resultados...

// un valor xx
double valor;
double parteEntero;
double parteDecimal;

valor = xx;
parteEntero = System.Math.Truncate(Valor);
parteDecimal = valor - parteEntero;

Esto no me dá resultado, que puedo hacer ?


Fabián.
Principiante.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida