Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, 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 проблемы с арифметикой