我想轉換指數編號5.52794e + 15。如何將指數格式轉換爲c中的十進制格式
0
A
回答
2
它不適合在int
,但long long
會做:
long long x = 5.52794e+15;
2
替代:你想打印它作爲一個整數。
double d = 5.52794e+15;
printf("%15.0lf\n",d);
給出:
5527940000000000
-1
長長×= 5.52794e + 15; 其中指數「15」必須是整數,係數5.52794是任何實數,甚至可以是整數。 尾數的最大值剛好超過32,000,000任何高於此的值都將被截斷。 如果你有一個運行總數,並且以小的值加入並保持精確的總數,這就變得很重要。 - 例如,您添加的值不是整數時的用電量。
+0
雖然我沒有給你降低成績,但我並不感到驚訝你害怕,我不明白你在哪裏得到尾數限制在3200萬的想法;它對於一個4字節的浮點值是有意義的,但5.52794e + 15是雙倍的,而且你通常會得到比32M評論暗示的更多的精度數字。關於保持總計值是雙重擔心的想法,但與這個特定上下文無關。 – 2009-12-22 20:29:35
1
除了使用long long,您還可以:
使用壓縮的十進制庫。
您可以在標準int或long中使用對數(或幾何等)縮放。
使用int結構,表示有效數和指數,並手動(或使用一個好的庫)進行浮點數學運算。
我已經使用了所有三種方法,它們都有其起伏。 Packed Decimal最慢也最準確。對數縮放是迄今爲止最快和最容易實現的,並且最不準確。通過整數重現浮點數在性能之間,精確度與「實際」浮點數基本相同,最難實現。
所有3個比使用浮點硬件慢 - 假設你的硬件有浮點!
相關問題
- 1. 將十六進制數轉換爲十進制格式
- 2. 將大時間格式轉換爲Excel中的十進制數
- 3. 如何將C++數字格式轉換爲C#數字格式?
- 4. 將整數十六進制格式轉換爲字符串
- 5. 十進制格式在C#
- 6. c#textbox十進制格式
- 7. 將格式化的mac地址轉換爲十六進制值
- 8. 在XSLT中將指數格式轉換爲數字格式
- 9. C#:將字符串格式的UInt16轉換爲整數(十進制)
- 10. 將十進制轉換爲IEEE-754格式
- 11. 將MysQl時間轉換爲十進制格式
- 12. 使用javascript將十進制時間轉換爲hh:mm格式
- 13. 將貨幣轉換爲十進制格式以繼續添加
- 14. 將雙精度轉換爲十進制格式?
- 15. 如何在Python中將科學數字格式化爲十進制格式?
- 16. 轉換十進制爲十六進制的嵌入式C
- 17. 如何將我的十進制線程ID轉換爲十六進制並使其以十六進制格式顯示在log4net轉換模式中?
- 18. Android十進制格式化,如何根據不同的指數值進行十進制格式化?
- 19. 數字十進制格式
- 20. 如何轉換爲十進制格式的GridView單元格與DataFormatString =「{0:#,###,## 0.00}」
- 21. C++十六進制數字格式
- 22. 在Microsoft Excel Visual Basic中將DMS格式轉換爲十進制的函數
- 23. 如何將C#中的大二進制字符串轉換爲十六進制字符串格式?
- 24. 將字符串轉換成ASCII格式,然後以十六進制格式
- 25. 數據格式爲十進制值
- 26. 如何在iOS中將圖像轉換爲二進制格式?
- 27. 如何將C風格的printf格式轉換爲C#字符串格式?
- 28. 將Python十進制對象格式化爲指定的精度
- 29. 如何將時間戳從十六進制格式轉換爲EPOCH時間戳?
- 30. 如何將字符串格式的時間轉換爲c#中的十進制數?
我將它轉換爲「int no。」,沒有發生任何有趣的事情。 :-( – 2009-12-22 16:39:42
換句話說,請提出一個問題,並提出一些有意義的問題,同時告訴我們你想做什麼以及爲什麼。 – 2009-12-22 16:40:15