Salve come faccio a sapere se un double o un float scritto come stringa rispetta i limiti?
Ho provato a fare in questo modo ma il min non dovrebbe avere segno negativo?
codice:
#define LIMITE_FLOAT_MIN numeric_limits<float>::min() //1.17549e-38
#define LIMITE_FLOAT_MAX numeric_limits<float>::max() //3.40282e+38
#define LIMITE_DOPPIO_MIN numeric_limits<double>::min() //2.22507e-308
#define LIMITE_DOPPIO_MAX numeric_limits<double>::max() //1.79769e+308
int main(int argc, char * argv[])
{
string numero = "1.79769e+308";
double val = atof(numero.c_str());
if((val<LIMITE_DOPPIO_MIN) || (val>LIMITE_DOPPIO_MAX))
{
//errore fuori limite
}
return 0;
}
Volevo sapere anche se è molto difficile avere un limite come fa java dove i suoi tipi non dipendono dal sistema in uso.
grazie