elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
14 Febrero 2012, 08:08  

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  numeros decimales y parce decimal
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: numeros decimales y parce decimal  (Leído 4,466 veces)
mapers


Desconectado Desconectado

Mensajes: 503


Ver Perfil
numeros decimales y parce decimal
« en: 26 Agosto 2009, 04:56 »

holas gente del foro quisiera que me ayuden con este codigo .
debo imngresar un numero decimal por ejemplo 3.658 y me deben de arrojar la parte decimal en este caso solo me deve de arrojar el 658 y lo pero de todo que lo tengo que hacer solo con   while  a hy esta mi avance  :

Código:
#include<iostream.h>
#include<conio.h>

float decimal (float n);

float decimal (float n)
{
int m,N;
float d,k;

k=n*10;
m=k/10;
d=m-n;

N=d*100;

while(( N%10)!=0)
{
        N=d*10;
}

return N/10;
}

int main ()
{
float n;
cout<<"ingres evalor"<<endl;
cin>>n;
cout<<decimal(n)<<endl;

getch();
}


En línea
h0oke


Desconectado Desconectado

Mensajes: 2.058


Coder ~


Ver Perfil WWW
Re: numeros decimales y parce decimal
« Respuesta #1 en: 26 Agosto 2009, 05:30 »

Te dejo un ejemplo:

Código
#include <iostream>
 
float p_dec(float);
 
int main()
{
   float a,dec;
   std::cout<<"Ingrese numero"<<std::endl;
   std::cin>>a;
   dec=p_dec(a);
   std::cout<<"Parte decimal:"<<dec<<std::endl;
   return 0;
}
 
float p_dec(float num)
{
   int pe;
   float res;
   pe=int(num);
   res=num-pe;
   return res;
}


En línea
mapers


Desconectado Desconectado

Mensajes: 503


Ver Perfil
Re: numeros decimales y parce decimal
« Respuesta #2 en: 26 Agosto 2009, 21:22 »

men pero el resultado sale con decimal p`s men
osea si ingreso el  36.369 con tu ejemplo me bota el 0.369 y no deve sañlrime asi me deve de dar  solamente 369 nada mas y lo pero que tengo que hacerlo con while ...................
En línea
h0oke


Desconectado Desconectado

Mensajes: 2.058


Coder ~


Ver Perfil WWW
Re: numeros decimales y parce decimal
« Respuesta #3 en: 27 Agosto 2009, 02:04 »

Citar
men pero el resultado sale con decimal p`s men

Sinceramente, es de muy mal agrado leer como te expresas. Para programar primero estaría bueno que aprendas a comunicarte correctamente.

Usa un poco más la cabeza y piensa como puedes convertir tu número decimal a entero. Te doy una ayuda : "Es forma inversa para descomponer un número en sus dígitos".

Si planeas trabajar con este tipo de cosas, te recomendaría que aprendas matemática.

Espero que no te regalen el código.

Un saludo!
En línea
mapers


Desconectado Desconectado

Mensajes: 503


Ver Perfil
Re: numeros decimales y parce decimal
« Respuesta #4 en: 27 Agosto 2009, 03:59 »

disculpen por expresarme asi aka esta mi codigo pero solo me funka para algunos casos a ver si me dan una manito para mejorarlo y que me salgan para casos generales sin modificar muxo  su estructura ..............
Código:
#include<iostream.h>


float decimal (float n);

float decimal (float n)
{
int m,L;
float d,k,N;

k=n*10;
m=k/10;
d=n-m;
N=d*10;
while((L%10)!=0)
{
       N=N*10;
      int(L=N*10);
}

return N;
}

int main ()
{
float n;
cout<<"ingres evalor"<<endl;
cin>>n;
cout<<decimal(n)<<endl;

system("pause");
}
En línea
aguml

Desconectado Desconectado

Mensajes: 297



Ver Perfil
Re: numeros decimales y parce decimal
« Respuesta #5 en: 27 Agosto 2009, 09:25 »

bueno, la siguiente modificacion de tu codigo me funciona perfecta aunque no se si te servirá ya que supongo que habrá alguna forma mas facil de conseguir lo mismo pero bueno  ;D

Código:
#include<iostream.h>


int decimal (double n);

int decimal (double n)
{
int pEntera, pDecimal;
double aux;
char cadenaAux[15] = {0};

pEntera = n;
aux = n - pEntera;
sprintf(cadenaAux, "%.10lf", aux);
cadenaAux[1] = '0';
pDecimal = atoi(cadenaAux);
while( pDecimal % 10 == 0)
pDecimal /= 10;

return pDecimal;
}

int main ()
{
double n;
cout<<"ingres evalor"<<endl;
cin>>n;
cout<<decimal(n)<<endl;

system("pause");
}
En línea
mapers


Desconectado Desconectado

Mensajes: 503


Ver Perfil
Re: numeros decimales y parce decimal
« Respuesta #6 en: 27 Agosto 2009, 17:10 »

pero mi programa corre  para todos los numeros decimales pero cunado le agrego demasiados no me da por a que se deve me pueden despejar mi duda..........o tiene algo que vr con el compilador
En línea
Jaixon Jax


Desconectado Desconectado

Mensajes: 856



Ver Perfil
Re: numeros decimales y parce decimal
« Respuesta #7 en: 27 Agosto 2009, 19:47 »

 ;D

Código:
pEntera = n;
aux = n - pEntera;
sprintf(cadenaAux, "%.10lf", aux);
cadenaAux[1] = '0';
pDecimal = atoi(cadenaAux);
while( pDecimal % 10 == 0)
pDecimal /= 10;

return pDecimal;

  Ayer cuando revise el code pense en lo mismo pero si el numero es 3.0001, no va a leer ningun decimal . Lo unico que si  le puedo decir es que tiene que meter el numero en un arreglo char e ir extrayendo decimal por decimal e ir construyendo otro numero e irlo comparando en el momento en que sea igual al numero original es por que no hay mas decimales....

  Salñudos
En línea

Tricalogo del buen forista:
  1.- No postear en hilos de Politica, ni religion, ni feminismo ni Machismo .....
  2.- Nunca solicitar ayuda por MP a alguien del staf .... ellos nunca responden ....
  3.- Aplaudir todos los "aportes" del staf aunque no los entiendas, o creas que no tienen importancia eso es buena onda ....
aguml

Desconectado Desconectado

Mensajes: 297



Ver Perfil
Re: numeros decimales y parce decimal
« Respuesta #8 en: 27 Agosto 2009, 22:15 »

supongo que el problema que tienes es por la precision asi que usa el indicador de precision como hago yo en el sprintf para indicar un valor de precision y que no te corte los decimales en la precision por defecto que sea.
En línea
43H4FH44H45H4CH49H56H45H
Wiki

Desconectado Desconectado

Mensajes: 483



Ver Perfil
Re: numeros decimales y parce decimal
« Respuesta #9 en: 29 Agosto 2009, 10:10 »

Algo asi podria ser:

Código
#include "stdafx.h"
#include <iostream>
#include <string>
#include <cstdlib>
 
int valor(float num)
{
char dest[]="000000000000000000";
sprintf(dest,"%f",num);
std::string form = dest;
int ini = form.find(".");
form = form.substr(ini+1,form.length());
for(int i=(form.length()-1);i>0;i--)
{
if(form[i]=='0')form[i]='\0';
else break;
}
return atoi(form.c_str());
}
int main()
{
std::cout<<valor(2.3890200000)<<std::endl;
std::cin.get();
return 0;
}
 

Hay que mejorarlo pero sirve de ejemplo...
En línea


-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W
mapers


Desconectado Desconectado

Mensajes: 503


Ver Perfil
Re: numeros decimales y parce decimal
« Respuesta #10 en: 31 Agosto 2009, 01:56 »

hahaha men   si em funka pero dime   cual es el error en mi programa que yo hice..................
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines