3

使用针对 boost 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

5

修改浮点输入/输出的默认格式: std::cout << std::fixed << boost::rational_cast<double>(v) << std::endl;添加std::fixed到它。

于 2018-02-02T00:34:56.917 回答