Buscando en github he encontrado una librería de precisión para decimales y enteros escrita en C++:
https://github.com/Sam-bit/BigDecimal-CPP
La acabo de probar y definitivamente es mejor opción que Boost. Te adjunto un ejemplo:
Código C++:
Ver original#include "BigDecimal.h"
#include <iostream>
#include <iomanip>
using namespace std;
int main(int argc, char** argv) {
// usando la libreria
BigDecimal C;
BigDecimal A("0.1");
BigDecimal B("0.2");
C = A + B;
cout << "C = " << C.toString() << endl; // 0.3
// forma nativa (con error)
float a = 0.1;
float b = 0.2;
float c = a + b;
cout << "C = " << setprecision(10) << c << endl; // 0.3000000119 (tiene un pequeño error de 0.0000000119)
}
PD: Evidentemente, puedes utilizar cualquier operador aritmético (+-/*), no solo suma.
PD2: El método toString() solamente lo debes utilizar cuando quieras imprimir un número en pantalla. Para realizar operaciones, es igual que en C/C++ solo que declarando tipo BigDecimal.