#include <stdio.h>
#include <float.h>
int main()
{
printf("%f\n", FLT_MAX);
}
wyjścia z GNU:drukowanie bardzo dużych liczb zmiennoprzecinkowych
340282346638528859811704183484516925440.000000
wyjścia z Visual Studio:
340282346638528860000000000000000000000.000000
wykonaj ++ standardy C i C pozwalają oba wyniki? Czy może zlecają określony wynik?
Należy pamiętać, że FLT_MAX = 2^128-2^104 = 340282346638528859811704183484516925440
.
Standardy C i C++ nawet nie wymagają określonej reprezentacji zmiennoprzecinkowej. Kusi mnie więc myśl, że nie mogą nakazać konkretnego wyniku. – Mysticial
@Mysticial Cóż, mogą nadal na ogół nakazać, że "dokładna wartość, która jest reprezentowana, musi być wydrukowana" lub coś w tym zakresie. – fredoverflow
I Unix pwns Windows. Jeszcze raz. –