[pyar] Int anti-intuitivo
Tordek
kedrot en gmail.com
Mie Nov 17 15:30:07 ART 2010
On 17/11/10 08:24, Roberto Alsina wrote:
> No, es porque son floats y los floats son así. Fijate lo que tu ejemplo hace
> en C:
>
> [ralsina en hp ~]$ cat f.c
> int main() {
> double x1;
> x1 = strtold("9999999999999999.0");
> printf ("%f\n", x1);
> }
> [ralsina en hp ~]$ tcc -run f.c
> -1910781505.000000
Error: strtold lleva 2 parámetros: el segundo indica donde terminó
de evaluar. (Así podés elegir si querés el chequeo estilo Python, o
más relajado.)
Precisión Double
================
$ cat double.c
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main() {
double x1;
char *string = "9999999999999999.0";
x1 = strtold(string, NULL);
printf ("%F\n", x1);
}
~
$ gcc double.c && ./a.out
10000000000000000.000000
Precisión Long Double
=====================
~
$ cat double.c
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main() {
long double x1;
char *string = "9999999999999999.0";
x1 = strtold(string, NULL);
printf ("%LF\n", x1);
}
~
$ gcc double.c && ./a.out
9999999999999999.000000
--
Guillermo O. «Tordek» Freschi. Programador, Escritor, Genio Maligno.
http://tordek.com.ar :: http://twitter.com/tordek
http://www.arcanopedia.com.ar - Juegos de Rol en Argentina
More information about the pyar
mailing list