jls 4.2.4 p40
1 gradual underflow:精度不能滿足,導致下溢。
2 round toward zero:從浮點強轉成整型的時候向零看趨近,找到最接近的整數。
3 0.0/0.0 is not-a-number。
4 比較運算子 <.<=,>,>=返回false,只要有乙個運算元是nan。
5 對於== 運算子,只要有乙個運算元是nan,返回false。
6 對於 != 運算子,只要有乙個運算元是nan,返回true。
7 當且僅當x 是nan的時候,x != x 為 true
8 如果x或者y是nan,(x < y) == !(x >= y ) 返回false
package arkblue.lang;
public class floattest
system.out.println();
// another example of inexact results and rounding:
system.out.print("inexact results with double:");
for (int i = 0; i < 100; i++)
system.out.println();
// an example of cast to integer rounding:
system.out.print("cast to int rounds toward 0: ");
d = 12345.6;
system.out.println((int) d + " " + (int) (-d));
system.out.println(1.0 / -0); // infinity
system.out.println(1.0d / -0); // infinity
system.out.println(1.0 / 0); // infinity
system.out.println(1.0d / 0); // infinity
system.out.println(0.0 / 0); // nan
system.out.println((1.0d / 0 * 0) != (0.0d / 0)); // true
system.out.println((1.0d / 0) != (0.0d / 0)); // true
system.out.println((1.0d / 0 * 0) == (0.0d / 0)); // false
system.out.println((1.0d / 0 * 0) > (0.0d / 0)); // false
system.out.println((1.0d / 0 * 0) >= (0.0d / 0)); // false
system.out.println((1.0d / 0 * 0) < (0.0d / 0)); // false
system.out.println((1.0d / 0 * 0) <= (0.0d / 0)); // false
double x = double.nan;
double y = 0.0;
system.out.println((x < y) == !(x >= y));
}}
結果:
overflow produces infinity: 1.0e308*10==infinity
gradual underflow: 3.141592653589793e-305
3.1415926535898e-310 3.141592653e-315 3.142e-320 0.0
0.0/0.0 is not-a-number: nan
inexact results with float: 0 41 47 55 61 82 83 94 97
inexact results with double: 0 49 98
cast to int rounds toward 0: 12345 -12345
infinity
infinity
infinity
infinity
nantrue
true
false
false
false
false
false
ARM 浮點運算,軟浮點,硬浮點
很多時候我們要處理的資料,不僅僅是整數和字串,還有浮點數即小數。在多 資料處理方面表現的更多。是不是所有的cpu都支援,浮點運算呢?答案 不是。我們常常聽到贏浮點和軟浮點,這些到底說的是什麼呢?下面我們就來一 竟吧。在這裡我們說的是arm核浮點運算。1 硬浮點 hard float 編譯器將 直接編...
ARM 浮點運算
很多時候我們要處理的資料,不僅僅是整數和字串,還有浮點數即小數。在多 資料處理方面表現的更多。是不是所有的cpu都支援,浮點運算呢?答案 不是。我們常常聽到贏浮點和軟浮點,這些到底說的是什麼呢?下面我們就來一 竟吧。在這裡我們說的是arm核浮點運算。1 硬浮點 hard float 編譯器將 直接編...
ARM 浮點運算
很多時候我們要處理的資料,不僅僅是整數和字串,還有浮點數即小數。在多 資料處理方面表現的更多。是不是所有的cpu都支援,浮點運算呢?答案 不是。我們常常聽到贏浮點和軟浮點,這些到底說的是什麼呢?下面我們就來一 竟吧。在這裡我們說的是arm核浮點運算。1 硬浮點 hard float 編譯器將 直接編...