3

ブースト 1.62 に対してコンパイルされた次のコードを使用します。

#include <boost/rational.hpp>
#include <iostream>

int main() {
    auto val = boost::rational<int64_t>(499999, 2);
    std::cout << val << std::endl;
    std::cout << boost::rational_cast<double>(val) << std::endl;
}

次の出力が得られます。

499999/2
250000

私は Rational_cast が 249999.5 を出力すると予想しますが、私が間違っていることを誰か説明できますか?

4

1 に答える 1