c++ - Boost C++如何输出没有指数字符的浮点值的所有数字?
问题描述
#include <iostream>
#include <boost/multiprecision/cpp_dec_float.hpp>
#include <boost/multiprecision/cpp_int.hpp>
using boost::multiprecision::number;
using boost::multiprecision::cpp_dec_float;
using boost::multiprecision::cpp_dec_float_50;
using boost::numeric_cast;
using std::cout;
int main()
{
srand(time(NULL));
std::cout << std::setprecision(std::numeric_limits<cpp_dec_float_50>::digits10);
cpp_dec_float_50 x = 0.0001;
cpp_dec_float_50 y = x*x*x*x;
std::cout << s << "\n";
}
我期望得到的输出是:0.00000000000000000001(20 个零)
对于这个问题,我只想删除“e^-16”部分。我怎样才能做到这一点?此外,如果其他人可以帮助我输出确切的值,那也会很有帮助。
谢谢你。
解决方案
您已x
使用二进制双精度值进行实例化,该值不能表示为十进制。以下是解决方法:
#include <iostream>
#include <boost/multiprecision/cpp_dec_float.hpp>
using boost::multiprecision::cpp_dec_float_50;
int main()
{
std::cout << std::setprecision(std::numeric_limits<cpp_dec_float_50>::digits10);
cpp_dec_float_50 x{"0.0001"};
cpp_dec_float_50 y = x*x*x*x;
std::cout << std::fixed;
std::cout << y << "\n";
}
输出:
0.00000000000000010000000000000000000000000000000000
推荐阅读
- python - 如何改进印地语文本提取?
- c++ - 在 C++ 中的引用变量中输出
- angular - BehaviorSubject 和 concatMap 的副作用
- reactjs - 以编程方式刷新远程数据时处理表分页
- javascript - 如何在不声明变量的情况下检查变量是“未定义”还是“空”
- flutter - 我有一个关于在未来访问“成员变量”的问题
- javascript - 我们如何将 json 文件导入 JSStore 数据库
- python - 如何将数组转换为数据框?
- haskell - Haskell:三叉树平均值,嵌套`where`
- google-drive-api - 在 Google 驱动器中解压缩非常大的文件