c++ - double to std::cout 截断数据

标签 c++ string double cout

int main(){
    std::string text = "15555555.2587";
    std::stringstream ss;
    double number;
    ss << text;
    ss >> number;
    std::cout << std::fixed << std::setw( 11 ) << std::setprecision( 6 ) 
      << std::setfill( '0' ) << number<<endl;

    return 0;
}

上述程序的输出是15555555.0000

它会截断小数点后的值。

如何获得正确的值?

最佳答案

您的 number 值符合预期。问题是你应该通过 cout 以这种方式打印它:

std::cout << std::fixed << std::setprecision(4) << number;

输出

155555.2587

关于c++ - double to std::cout 截断数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19973042/

相关文章:

string - Lua bool 值在 Redis 中没有预期的行为

c++ - 行列式中的段错误(核心已转储)

java - 如何将 Java double 转换为 byte[],以及 byte[] 转换为 double(IEEE 754 double 二进制浮点格式)

c++ - 跨不同 C++ 程序的唯一类型标识符

c++ - 如何将常量指针传递给类中的方法

c++ - 如何从 unique_ptr 中删除原始指针

floating-point - 对于接近统一的值, float 学是否更精确?

javascript - 如何设置自定义 slider 的值

c# - 检查字符串是否有单词

PHP 提取字符串的一部分