控制双精度值的显示精度
Control the precision displayed for doubles
c++中是否有一种简单的方法来增加双精度类型的偶数的精度:
例如 double d = 3.6
等于
d = 3.600 (adding 2 zeros)
这个d然后被发送到字符串类
std::to_string(d);
你可能会问为什么?我正在使用GUI (gtkmm),并在textview中产生的每个数字必须具有相同的长度。
这是长度不相同的结果:
4.396 3.957 11
4.183 3.783 10
3.959 3.6 9
3.723 3.404 8
3.474 3.194 7
3.207 2.967 6
2.919 2.719 5
是否有可能增加小数-即当值是原始值时添加额外的零,或者我必须在之后操作字符串?
编辑:我应该更清楚-我对std::cout不感兴趣。下面的输出表示一个GUI
从技术上讲,您没有改变类型double
的精度。如果数字太短,要添加"额外的零",可以使用std::stringstream
如下所示:
std::stringstream s;
double d = 3.6;
s << std::fixed << std::setprecision(3) << d;
std::string res = s.str();
std::cout << res;
现场演示
以上命令将数字精度设置为3
位,并打印3.600
。
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 字符串-C++后显示的随机字符
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 继承期间显示未知行为的子类
- 仅使用绝对值对数组进行排序,并在C++中显示实际值
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- 当使用比格式支持的精度更高的精度来显示数字时,会写出什么数据
- 无法获得固定的设置精度双精度以显示小数位
- 为什么 std::setprecision 显示不存在的精度位以及如何查看实际浮点数
- 使用 qt 和 opengl、定时精度和垂直同步问题、c++ 显示图像
- 我可以控制调试器窗口中显示的浮点数和双精度变量的位数吗?
- 使用浮点数、双精度数和长双精度数后,控制台中不显示所有数字
- 以C++格式全精度显示浮点数
- 用cout显示双精度的c++问题
- 控制双精度值的显示精度
- 从二进制文件读取双精度(到类中)-小数不显示
- c++中double的精确位数在windows和Linux中不同.为什么?Linux显示超过20个非零精度数字
- std::cout << 预测任意双精度显示的自动字段宽度
- 为什么在显示矢量<长双精度>时看不到所有有效数字?