打印精度高达4位小数的双精度数据类型-Armadillo

问题描述

我正在尝试使用c ++中的armadillo库执行以下操作。

每当我打印出一个矩阵(arma::mat)时,它总是以以下形式打印:-

1.0594e+03   1.0439e+04   0.3425e+04
1.0232e+03  12.0319e+04   0.1225e+04
11.5044e+03   1.231e+04   0.3424e+04

我想知道是否可以删除e+04并实际打印出整数,例如:-

 1059.4   1043.9  3425.0
1023.23 120319.0  1225.0
11504.4   1231.0  3424.0

解决方法

有些古怪地带我去http://arma.sourceforge.net/docs.html#raw_print,它说:

类似于.print()成员函数,不同之处在于不对输出进行格式化;流的参数(例如精度,像元宽度等)可以手动设置

并显示此示例:

mat A = randu<mat>(5,5);

cout.precision(11);
cout.setf(ios::fixed);

A.raw_print(cout,"A:");

如果这是您要寻找的内容,则可以在这里进一步研究:https://en.cppreference.com/w/cpp/io/ios_base/fmtflags,以查看可以设置的其他格式设置参数。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...