El problema es que necesito una funcion que cuente los digitos decimales. He llegado a esto:
Código:
Lo compilan y ingresan un numero. La idea es que si por ejemplo se ingresa 145.57, la funcion devuelva 2.#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;
}
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



