刚刚成功使用MPFR C++编译程序(第一次)时,我需要打印出一些相当大的数字,但它们只是作为工程符号而不是整个数字出现。从我读的内容来看,这个库并没有针对(任意)整数进行优化,因此可以将浮点数作为整数使用,因为它们不会有任何小数。我只是C++的初学者,所以我不知道通过所有可用工具的方式,但有没有办法将(大)浮点数打印出来,就好像它们是整数一样?作为一个例子,代替(说)1.12276e+44
,打印112275575285571389562324404930670903477890625
。如果我尝试std::cout.precision(44)
,我得到1.12275575285571389562324404930670903477890625e+44
,这看起来不太好。MPFR C++打印整数等浮点数
回答
MPFR C++允许精确调整输出格式la printf
样式(如果标准C++功能不够)。例如:
std::cout<<x.toString("%34.0RNf")
请参考MPFR手册括号格式规范。 你也可以检查这个问题:https://stackoverflow.com/a/9627660/479995
谢谢你的回答。我不认为有一种方法可以实际处理大整数,而不是浮点?我的需求是生成多项式,顺序可以达到50,但我仍在考虑是否应该限制它,或让用户玩得开心...... –
其实MPFR不是大整数的库,它不是很好想法用浮点类型来模拟它们。 GMP/MPIR专注于此(请参阅mpz_t类型),这些库存在一些C++包装器。 –
浮点类型有固定的位数来存储数字 - 所以真正的大整数将四舍五入到这个位数。本地big-int库增加号码存储以精确保持号码。 –
- 1. 打印整数作为字符,小数点,浮点数
- 2. 在Python中将浮点数打印为整数
- 3. scanf浮点数,打印浮点数,不同的值?
- 4. 在C中打印整数char整数
- 5. 打印一个整数或小数点后n位的浮点数
- 6. C思维:浮点数与整数和浮点数表示法
- 7. 打印最大单精度浮点数
- 8. 打印浮点数汇编8086
- 9. 高精度打印结果(浮点数)
- 10. 使用写入打印浮点数
- 11. 在python中打印浮点数
- 12. 从浮点值打印2位小数
- 13. 在D中打印浮点数
- 14. 如何整数浮点数? C++/CLI - VS2015
- 15. 将C++浮点数转换为整数
- 16. 在小数点后打印PHP浮点数3位数?
- 17. 格式化小数点后不打印零点的浮点数
- 18. 怪异的结果打印指针作为浮点数C
- 19. 如何将浮点数打印到visual C++ messagebox?
- 20. 在Objective C:打印浮点数,因为它是
- 21. 使用特定数量的零点打印浮点数
- 22. 在非科学记号中打印浮点数或双精度浮点数
- 23. C++浮点型到整数型转换
- 24. C中浮点类型的整数值
- 25. 打印浮点数时可以减少'.00',可以保存整个数字
- 26. 只打印整数?
- 27. 打印的整数
- 28. 打印出浮点值
- 29. 按位数打印整数
- 30. 在C#中用{#}打印整个数字?
你有没有尝试[使用任何其他浮点输出格式](http://en.cppreference.com/w/cpp/io/manip/fixed)? –
如果添加'std :: fixed',会发生什么?来源:http://en.cppreference.com/w/cpp/io/manip/fixed –
@JoachimPileborg不,我没有。感谢您发布链接。 'std :: fixed'似乎接近我想要的,而不是打印小数。这是唯一的方法吗? –