![]() |
| FTP | CCD | Enlaces | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Desplegado |
|
#1
|
||||
|
||||
|
FLOAT definir lugares decimales
Hola amigos
Hay alguna forma de definir cuantos numero decimales (o sea después de la ,) puedo usar en el Float. O sea alguna forma de definir que mi variable de tipo Float solo use X cantidad lugares después de la coma Gracias de Antemano
__________________
Cuando miras fijamente al abismo, este, te devuelve la mirada |
|
#2
|
||||
|
||||
|
Una variable Float tiene (en teoría) infinitos decimales.
Lo que puedes hacer es redondear el valor a la cantidad de decimales que quieras. Por ejemplo, deberías mirar el Help para la función RoundTo Cita:
En es ecaso deberías ver las máscaras. |
|
#3
|
||||
|
||||
|
muchas gracias mi hermano eso era exactamente lo que estaba buscando.
__________________
Cuando miras fijamente al abismo, este, te devuelve la mirada |
|
#4
|
||||
|
||||
|
Un problemilla
Cuando uso el RoundTo() me dice Código:
[C++ Error] Unit1.cpp(323): E2268 Call to undefined function 'RoundTo'.
__________________
Cuando miras fijamente al abismo, este, te devuelve la mirada |
|
#5
|
||||
|
||||
|
Hola impadron.
Código:
double pi= 3.141592654,r; ShowMessage(FloatToStr((int)(pi*100)/100.0)); // 2 decimales ShowMessage(FloatToStr((int)(pi*1000)/1000.0)); // 3 decimales ShowMessage(FloatToStr((int)(pi*10000)/10000.0));// 4 decimales r = (int)(pi*100000)/100000.0; // 5 decimales //...
__________________
[¿ Ya leiste la guía de estilo ?] [¿ Como se usan las etiquetas ?] [El Lado Oscuro De La Guia De Estilo] Última edición por ecfisa fecha: 11-08-2011 a las 15:58:00. Razón: Acomodar identación |
|
#6
|
||||
|
||||
|
Veo que estás programando en C. No se dónde estará esta función en C.
De todos modos, si quieres programarla tu, la cosa va más o menos así:
Nota: Esta función no tiene en cuenta el último decimal: 1.239 = 1.23 La función perfeccionada debería tenerlo en cuenta y devolver 1.239 = 1.24 |
|
#7
|
||||
|
||||
|
Gracias por sus ejemplos duilioisola y ecfisa en ambos casos puedo definir con cuantos decimales deseo trabajar ahora como decia duilioisola en ninguno de los casos puedo redondear. Saben alguna forma de hacer en c++ ??
__________________
Cuando miras fijamente al abismo, este, te devuelve la mirada |
|
#8
|
||||
|
||||
|
Hola impadrón.
Para obtener 'n' números decimales: Código:
...
#include <math.h>
...
double NumNDec(double Num, int Dec)
{
return ((float)(int)(Num*exp(log(10)*Dec))/exp(log(10)*Dec));
}
Código:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
double pi= 3.141592654;
for(int i=1; i< 5; i++)
ListBox1->Items->Add(FloatToStr(NumNDec(pi,i)));
}
__________________
[¿ Ya leiste la guía de estilo ?] [¿ Como se usan las etiquetas ?] [El Lado Oscuro De La Guia De Estilo] Última edición por ecfisa fecha: 11-08-2011 a las 16:57:30. |
|
#9
|
||||
|
||||
|
Hola Impadrón.
No había visto tu último mensaje mientras ponía el anterior. Para redondear: Código:
...
#include <math.h>
...
double Round(double Num, int Dec)
{
return ((float)((int)(Num*pow(10,Dec)+0.5)))/pow(10,Dec);
}
Código:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
double pi= 3.141592654;
for(int i=1;i< 5; i++)
ListBox1->Items->Add(FloatToStr(Round(pi,i)));
}
Edito: En el ejemplo de número de dígitos me había olvidado de pow... , así que hice unos malabares... ![]() Usando pow la función sería: Código:
double NumNDec(double Num, int Dec)
{
return ((float)(int)(Num*pow(10,Dec))/pow(10,Dec));
}
__________________
[¿ Ya leiste la guía de estilo ?] [¿ Como se usan las etiquetas ?] [El Lado Oscuro De La Guia De Estilo] Última edición por ecfisa fecha: 11-08-2011 a las 18:13:03. |
|
#10
|
||||
|
||||
|
muchas gracias
__________________
Cuando miras fijamente al abismo, este, te devuelve la mirada |
|
#11
|
|||
|
|||
|
Yo utilizo la función FormatFloat. Sería algo así:
cadena = FormatFloat("0,.000", numero) numero sería el valor decimal original y en cadena nos quedaria un string con separador de miles (,) , en este caso con tres decimales (número de ceros a la derecha del .). Si se quiere luego se puede volver a convertir de String a float con StrToFloat. Un saludo |
|
#12
|
||||
|
||||
|
voy a probarlo !!!
__________________
Cuando miras fijamente al abismo, este, te devuelve la mirada |
![]() |
| Herramientas | |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| cantidad de decimales en campo float | look | SQL | 5 | 04-10-2010 18:53:54 |
| mostrar en una grilla float con 4 decimales | Patricio | Varios | 2 | 12-11-2008 14:27:49 |
| manejo de decimales de un Float | BC++ | C++ Builder | 3 | 12-08-2008 17:51:58 |
| reducir decimales de float | el_barto | Varios | 4 | 22-09-2005 21:27:09 |
| Decimales con más de 4 lugares después del punto...? | Blazer2104 | Conexión con bases de datos | 2 | 10-11-2004 15:15:22 |
|