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