如何在c++中打印一个固定精度的双精度数?
How can I print a double in C++ up to a fixed precision?
如果我在double
变量中存储了一个值,如
double d = pow(...)
和这个函数,假设,计算结果是一个整数,如果我使用cout
打印它,它只打印不带末尾零的整数。
如何打印末尾的零?
#include <iostream> // std::cout, std::fixed
#include <iomanip> // std::setprecision
int main () {
double f =3.14159;
std::cout << std::setprecision(5) << f << 'n';
std::cout << std::setprecision(9) << f << 'n';
std::cout << std::fixed;
std::cout << std::setprecision(5) << f << 'n';
std::cout << std::setprecision(9) << f << 'n';
return 0;
}
输出:3.1416
3.14159
3.14159
3.141590000
setprecision(int n)
设置指定的精度
您可能正在寻找std::setprecision
。像这样:
std::cout << std::setprecision (10) << d << std::endl;
相关文章:
- 将双精度变量设置为另一个变量的值
- 我在C++中使用提升哈希函数将 3 个双精度组合成一个面临冲突的哈希
- 为什么 Clang std::ostream 写一个 std::istream 无法读取的双精度?
- Fmod 函数清楚地输出一个预期的双精度值,但 if(fmod == 预期的双精度值)的计算结果不是 true
- C++ 警告:在一个声明中将截断从双精度初始化为浮点数,但在另一个声明中则不初始化
- 在浮点精度成为一个问题之前,可以将多少个浮点值加在一起
- 字符串和双精度的麻烦,等值后再得到一个数字
- 我想读取文本文件中的所有内容(但文本文件中只有一个双精度值),转换为双精度值并返回值
- 在编译时将整数和分数部分宏组合成一个新的宏或双精度
- 将 32 位浮点数和不强制转换的 32 位整数与双精度进行比较,当其中一个值可能太大而无法完全适合另一种类型时
- 有没有办法构造一个 constexpr 函数来获取双精度的位表示
- 如何使用 c++ 将多个变量存储在一个变量中?例如,双精度 x,y,z 包含在可变点 p 中
- 您能否给我一个 16 位(或更多)十进制数,该十进制数仅在第 15 位正确转换为双精度浮点圆
- 在C 中声明一个八倍精度浮点变量
- 为什么“从'x*'到'y'失去精度”是一个硬错误,什么是适合旧版代码的解决方案
- 如何将精度设置为一个数字
- C++ 传递一个 int,错误地说这是一个双精度
- C++中是否有一个浮点文字后缀来使数字的精度翻倍
- 如何验证字符串是有效的双精度(即使它有一个点)
- 声明一个精度未知的向量