Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/02/2010, 15:25
ytrio
 
Fecha de Ingreso: febrero-2010
Mensajes: 1
Antigüedad: 14 años, 2 meses
Puntos: 0
Funcion contadora digitos decimales

Bueno ando haciendo una pequeña calculadora en c++ para practicar el lenguaje y que ademas me sirva para cuando tenga que verificar algo en matematica.
El problema es que necesito una funcion que cuente los digitos decimales. He llegado a esto:

Código:
#include <iostream>
#include <math.h>
#include <stdlib.h>
#include <stdio.h>

using namespace std;

int num_desp_coma(double);

int main(){
	double a;
	cout << "Ingrese: ";
	cin >> a;
	cout << num_desp_coma(a);
	return NULL;
}

int num_desp_coma(double num){
	int a=0;
	long int aux;
	double aux2;
	
	if(num>=1){
		aux=num;
		num=num-aux;
	}
	
	aux=0; 
	
	do{
		num=num*10;
		aux=num;
		aux2=aux;
		num=num-aux2;
		cout << ":" << num << ":";
		a++;
	}while(num<aux2);
		
	return a;
}
Lo compilan y ingresan un numero. La idea es que si por ejemplo se ingresa 145.57, la funcion devuelva 2.
Funciona perfectamente cuando ingreso 0.1111, pero si lo prueban con otro numero hace cualquier cosa y no entiendo por que, si alguien me puede ayudar se lo agradesco