剛剛成功使用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. 浮動只打印整數?
- 3. 打印整數作爲字符,小數點,浮點數
- 4. log4j打印浮點數爲指數
- 5. 打印任意數量的浮點數
- 6. 打印整數和浮點數,但得到0的
- 7. 在Python中將浮點數打印爲整數
- 8. Awk打印整數而不是浮點數
- 9. scanf浮點數,打印浮點數,不同的值?
- 10. 在C中打印整數char整數
- 11. 打印一個整數或小數點後n位的浮點數
- 12. C思維:浮點數與整數和浮點數表示法
- 13. 從MPFR打印到文件
- 14. 從浮點值打印2位小數
- 15. 在D中打印浮點數
- 16. 高精度打印結果(浮點數)
- 17. 使用寫入打印浮點數
- 18. 打印最大單精度浮點數
- 19. 打印浮點數彙編8086
- 20. 在python中打印浮點數
- 21. 打印浮點值
- 22. 如何整數浮點數? C++/CLI - VS2015
- 23. C++整數除法到浮點數
- 24. 將C++浮點數轉換爲整數
- 25. 顯示整數和整數浮點數作爲浮點數
- 26. 用MPFR舍入到整數
- 27. 在小數點後打印PHP浮點數3位數?
- 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'似乎接近我想要的,而不是打印小數。這是唯一的方法嗎? –