Je l'ai fait juste pour le plaisir (donc pas exactement une question, je peux voir le downmodding se passe déjà) mais, en lieu et place de toute nouvelle de Google inability faire mathcorrectly (vérifier selon Google 500.000.000.000.002 - 500,000,000,000,001 = 0), J'ai pensé que j'essaierais ce qui suit en C pour faire un peu de théorie.Le calculateur Google Glitch, pourrait flotter contre le double être une raison possible?
int main()
{
char* a = "399999999999999";
char* b = "399999999999998";
float da = atof(a);
float db = atof(b);
printf("%s - %s = %f\n", a, b, da-db);
a = "500000000000002";
b = "500000000000001";
da = atof(a);
db = atof(b);
printf("%s - %s = %f\n", a, b, da-db);
}
Lorsque vous exécutez ce programme, vous obtenez les éléments suivants
399999999999999 - 399999999999998 = 0.000000
500000000000002 - 500000000000001 = 0.000000
Il semblerait que Google utilise simplement une précision flottante 32 bits (l'erreur ici), si vous changez de flotteur pour double dans la ci-dessus, vous corrigez le problème! Cela pourrait-il être cela?
/mp