相关疑难解决方法(0)

如何'cout'双值的正确小数位数?

我需要帮助来保持精确度double.如果我将文字分配给double,则实际值会被截断.

int main() {
    double x = 7.40200133400;
    std::cout << x << "\n";
}
Run Code Online (Sandbox Code Playgroud)

对于上面的代码片段,输出7.402
是否有办法防止这种类型的截断?或者有没有办法计算出多少浮点数double?例如,number_of_decimal(x)会给出11,因为输入在运行时是未知的,所以我不能使用setprecision().


我想我应该将我的问题改为:如何在不截断浮点的情况下将double转换为字符串.即

#include <iostream>
#include <string>
#include <sstream>

template<typename T>
std::string type_to_string( T data ) {
    std::ostringstream o;
    o << data;
    return o.str();
}

int main() {
    double x = 7.40200;
    std::cout << type_to_string( x ) << "\n";
}
Run Code Online (Sandbox Code Playgroud)

预期产量应为7.40200,但实际结果为7.402.那么我该如何解决这个问题呢?任何的想法?

c++ precision double tostring

27
推荐指数
4
解决办法
8万
查看次数

标签 统计

c++ ×1

double ×1

precision ×1

tostring ×1