Attualmente sto meravigliandomi su questo:differenza di precisione per la stampa di Python e C++ raddoppia
C++ 11
#include <iostream>
#include <iomanip>
#include <limits>
int main()
{
double d = 1.305195828773568;
std::cout << std::setprecision(std::numeric_limits<double>::max_digits10) << d << std::endl;
// Prints 1.3051958287735681
}
Python
>>> repr(1.305195828773568)
'1.305195828773568'
Che cosa sta succedendo, perché il 1 extra in C++?
Finora ho pensato che C++ e Python usassero gli stessi doppi IEEE a 64 bit sotto il cofano; entrambe le funzioni di formattazione dovrebbero stampare la massima precisione.
Si noti che * la proprietà * di 'repr' è:' eval (repr (x)) == x' ** not ** che i numeri vengono stampati con tutte le cifre decimali. Se si desidera una precisione delle cifre decimali 'k', è necessario utilizzare una funzione di formattazione corretta. – Bakuriu