如何將樓層函數應用於float或double值以獲取整數。我得到double值:4.4497083717E10 float值:4.4497084E10超出我的函數。我的樓層值爲雙層樓層:4.4497083717E10 Float的底線:4.4497084416E10。是否有底線可能導致整數?樓層函數浮動和雙值
2
A
回答
4
。是否有可能發言的結果是一個整數?
從類型的角度 - 沒有。 Math.floor
被聲明爲返回double
,因此永遠不會返回靜態類型爲int
的東西。
也就是說,該方法的文檔聲明返回的值是等於的整數。所以簡單地將返回的結果轉換爲int
將始終爲您提供您期望的輸出。
(也就是說,假設你的結果是在範圍內。一個double
可以容納更大的數字,一個int
可以代表檢查出Narrowing primitive conversions的技術細節,你可能想越界檢查數據,以確保它總是明智的轉換爲int
。)
1
4.4497083717E10太大而無法成爲int
,您必須將其投射到long
。
鑄造到一個長期保持雙重的整個部分使其與Math.floor
相同的值可以表示爲一個長期。即
long l = (long) Math.floor(4.4497083717E10);
相同
long l = (long) 4.4497083717E10;
System.out.println((int) Math.floor(4.4497083717E10));
System.out.println((long) Math.floor(4.4497083717E10));
System.out.println((long) 4.4497083717E10);
打印
2147483647 -- due to an overflow
44497083717
44497083717
相關問題
- 1. 比較樓層/小區後的浮點數/雙精度比較
- 2. 如何在AVX中實現樓層(雙層)?
- 3. 在層樓高RTEMS
- 4. PHP樓層功能
- 5. 如何求和樓層序號?
- 6. 降級雙浮動
- 7. 層樓高Android SDK中
- 8. Java平等的浮動和雙打
- 9. 作爲兩個雙打總和的雙雙精度浮點數
- 10. 紅寶石雙浮動浮標0
- 11. 雙浮動錯誤 - IE
- 12. c中的浮點數和雙精度#
- 13. 雙精度和單精度浮點數?
- 14. 浮子之間和雙
- 15. 區分浮點和雙重
- 16. 雙,浮法和長聲明
- 17. 浮法arithemtic和雙精度?
- 18. Python浮點/求和函數
- 19. 如何在您的計算中使用新的樓層值php
- 20. 室內樓層地圖反應原生
- 21. 無法在Mapbox中添加樓層GL
- 22. 嵌套查詢在3個樓層
- 23. 使用C的樓層地圖#
- 24. 數學,樓層,天花板,小數什麼使用錯誤
- 25. Libgdx 2d樓動畫
- 26. .NET實現:在Math.Min雙轉換(浮動,浮動)
- 27. 2.0和2.0f之間的區別(顯式浮點數和雙字面值)
- 28. Php日誌和樓層功能奇怪的行爲
- 29. 查找公寓號碼和樓層號碼
- 30. 精確值的雙/浮點比較
您必須floor'後''申請round'。 – 2012-04-20 09:34:52
@MarkoTopolnik爲什麼要將一個浮點數整數保證表示一個整數已經? – 2012-04-20 09:56:16
@ChristianRau因爲你想要一個'長',這就是'圓'返回。 「double」永遠不會「代表」一個整數,它只是近似於它。正如安德烈·多伊爾(Andrzej Doyle)的回答所解釋的,另一種選擇是簡單地投入「長」。結果是完全一樣的,不同之處只在於你的品味,看起來更清潔。 – 2012-04-20 09:59:41