Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
#include <stdio.h> #include <math.h> int main() { char* a = "399999999999999"; char* b = "399999999999998"; float da = atof(a); float db = atof(b); printf("da = %f, db = %f\n", da, db); // para ver como se almacenan los numeros printf("%s - %s = %f\n", a, b, da-db); a = "500000000000002"; b = "500000000000001"; da = atof(a); db = atof(b); printf("da = %f, db = %f\n", da, db); printf("%s - %s = %f\n", a, b, da-db); } ---- 399999999999999 - 399999999999998 = 0.000000 500000000000002 - 500000000000001 = 0.000000
#include <stdio.h>
#include <math.h>
int main()
{
unsigned long long la = 399999999999999LL;
unsigned long long lb = 399999999999998LL;
printf("sizeof(int) = %d, sizeof(long) = %d, sizeof(long long) = %d\n",
sizeof(int), sizeof(long), sizeof(long long));
printf("la = %lld, lb = %lld\n", la, lb);
printf(" = %lld\n", la - lb);
la = 500000000000002LL;
lb = 500000000000001LL;
printf("la = %lld, lb = %lld\n", la, lb);
printf(" = %lld\n", la - lb);
return 0;
}
-----
la = 399999999999999, lb = 399999999999998
= 1
la = 500000000000002, lb = 500000000000001
= 1
#include <stdio.h>
#include <math.h>
int main()
{
double a = 500000000000002.0;
double b = 500000000000001.0;
printf("%lf - %lf = %lf\n", a, b, a - b);
return 0;
}
----
500000000000002.000000 - 500000000000001.000000 = 1.000000
<?php $a = 500000000000002; $b = 500000000000001; echo $a - $b; ?>
double val = 0.00; for (int i = 0; i < 10; ++i) val += 0.10; Response.Write(val == 1);
У калькулятора Google проблемы с арифметикой