  |
Java conosce l'analisi matematica! |
ma se siete rimasti stupiti del fatto che che differenza tra 5/2 e 5.0/2, sarete ancora più sorpresi dal fatto che Java in fatto di matematica la sa lunga.
  |
Segue lo standard IEEE 754 |
L' aritmetica in virgola mobile di Java segue uno standard definito dall'associazione degli ingegneri americani, che consente di fare calcoli utilizzando alcune regole che si imparano dal liceo quando si studia l'analisi matematica.
  |
Esistono gli infiniti
per |
  |
Double.POSITIVE_INFINITY, Float.NEGATIVE_INFINITY, etc |
innanzitutto esistono gli infiniti: se si divide un numero positivo per 0, si ottiene infinito positivo. Regola standard di analisi matematica, ma finora un poco inconsueta nei linguaggi di programmazione. Esistono infatti delle costanti che rappresentano gli infiniti.
  |
Esiste la forma indeterminata Float.NaN |
  |
NaN: Not A Number |
dall'analisi matematica sappiamo anche che esistono operazioni che non ritornano un risultato.
Per esempio 0/0, non ha soluzione, per cui si dice che è una forma indeterminata. Esiste una costante che rappresenta la forma indeterminata, ed è NaN, Not a Number. Nella seguente tabella sono riassunti i vari casi in cui si ottiene infinito o la forma indeterminata.
| x |
y |
x/y |
x%y |
| finito |
+/- 0 |
+/- infinito |
NaN |
| NaN |
+/- infinito |
NaN |
NaN |
| +/- |
finito |
+/- infinito |
NaN |
| +/- infinito |
+/- infinito |
NaN |
NaN |
|