[c++][decimal] boost.multiprecision не работает
От: anatoly1  
Дата: 19.10.15 04:53
Оценка:
Есть код, по которому можно сделать вывод, что boost_decimal не работает, как надо:
#include <iostream>
#include <boost/multiprecision/cpp_dec_float.hpp>
#include <decimal/decimal>

using namespace std;
using decimal32 = decimal::decimal32;
using boost_decimal = boost::multiprecision::cpp_dec_float_50;

std::ostream& operator<<(std::ostream& out, const decimal32& d)
{
    out << decimal::decimal32_to_double(d);
    return out;
}

int main()
{
    decimal32 a(0.1);

    auto a2 = a+a+a+a+a+a+a+a+a+a;

    cout << a2 << "\n";

    cout << (a2==1) << "\n";

    boost_decimal b(0.1);

    auto b2 = b+b+b+b+b+b+b+b+b+b;

    cout << b2 << "\n";

    cout << (b2==1) << "\n";

    return 0;
}

Результат:
1
1
1
0

Это баг или фича?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.