首页 > 解决方案 > 双精度与浮点精度问题

问题描述

#include <iostream>

int main()
{
    double a = 2 , b = 3;

    double answer = a/b;
    std::cout << answer;
    std::cout << std::to_string(answer);
}

浮点数或双倍我得到:0.666667;

我期望双精度更高;我如何得到更像:0.666666666666667

编辑:而且我不需要使用 to_string; 来丢失精度;

标签: c++doubleprecision

解决方案


我期望双精度更高

浮点类型的精度与文本表示中十进制数的精度是不同的概念。

您没有指定所需的精度,因此使用了默认值。碰巧默认值不是您任意期望的。例如,您可以像这样指定精度:

std::cout.precision(15);

推荐阅读