¿C++ redondea los números?
Publicado por Jose25 (21 intervenciones) el 13/09/2017 21:36:36
He programado con otros lenguajes y estoy empezando con C++. Estaba escribiendo una rutina y me he encontrado con un problema. Me parece que C++ redondea los números, por lo menos los tipo double. El problema lo resumo con el siguiente programa:
Lo he probado con diferentes compiladores de c++ y en diferentes ordenadores y siempre sale lo mismo:
ok2 9.700000
ok3 0.700000
ok1 7.000000 (Aqui se ve el problema)
ok3 7.000000
¿Que se puede hacer para que C++ no redondee los números?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
bool main(){
double z1 = 0.97;
for (int a1 = 0; a1 < 2; a1++){
z1 = z1 * 10;
if (z1 < 7){
printf("ok1 %f \n", z1);
}
else if (z1 < 10){
printf("ok2 %f \n", z1);
z1 = z1 - 9;
}
printf("ok3 %f \n", z1);
}
getchar();
return 0;
}
Lo he probado con diferentes compiladores de c++ y en diferentes ordenadores y siempre sale lo mismo:
ok2 9.700000
ok3 0.700000
ok1 7.000000 (Aqui se ve el problema)
ok3 7.000000
¿Que se puede hacer para que C++ no redondee los números?
Valora esta pregunta


0