Articles of floating point

Perché la conversione da float a double cambia il valore?

Ho cercato di scoprire il motivo, ma non potevo. Qualcuno può aiutarmi? Guarda il seguente esempio. float f; f = 125.32f; System.out.println(“value of f = ” + f); double d = (double) 125.32f; System.out.println(“value of d = ” + d); Questo è l’output: valore di f = 125,32 valore di d = 125,31999969482422

Cosa fa realmente gf’s ffast-math?

Capisco che il –ffast-math di gcc –ffast-math può aumentare notevolmente la velocità per le –ffast-math e va oltre gli standard IEEE, ma non riesco a trovare informazioni su ciò che sta realmente accadendo quando è acceso. Qualcuno può spiegare alcuni dettagli e magari dare un chiaro esempio di come qualcosa cambierebbe se la bandiera fosse […]

Perché questa sottrazione non è uguale a zero?

Mi sono imbattuto in questi valori nel mio codice ColdFusion ma il calcolatore di Google sembra avere lo stesso “bug” in cui la differenza è diversa da zero. 416582.2850 – 411476.8100 – 5105.475 = -2.36468622461E-011 http://www.google.com/search?hl=en&rlz=1C1GGLS_enUS340US340&q=416582.2850+-+411476.8100+-+5105.475&aq=f&oq=&aqi= JavaCast’ing questi a long / float / double non aiuta – si traduce in altre differenze diverse da zero.

Perché non possiamo usare ‘==’ per confrontare due numeri float o double

Sto leggendo Efficace java di Joshua Bloch e nell’articolo 8: Rispetto al contratto generale quando si esegue l’override uguale , questa affermazione è scritta per i campi float, utilizzare il metodo Float.compare; e per i campi doppi, utilizzare Double.compare. Il trattamento speciale dei campi float e double è reso necessario dall’esistenza di Float.NaN, -0.0f e […]

lungo doppio contro doppio

So che la dimensione dei vari tipi di dati può cambiare a seconda del sistema in cui mi trovo. Io uso XP a 32 bit, e usando l’operatore sizeof () in C ++, sembra che il doppio lungo sia 12 byte, e il doppio è 8. Tuttavia, la maggior parte delle fonti principali afferma che […]

Confronto a virgola mobile con variabile in bash

Voglio confrontare una variabile in virgola mobile in un intero. So che questo non è il migliore da fare con bash, ma il mio intero script è già scritto in bash. Il numero $ può essere qualsiasi intero. Se è inferiore o uguale a 50, voglio output1, per tutti gli altri voglio un output con […]

Manipolazione e confronto di punti mobili in java

In Java l’aritmetica in virgola mobile non è rappresentata con precisione. Ad esempio questo codice java: float a = 1.2; float b= 3.0; float c = a * b; if(c == 3.6){ System.out.println(“c is 3.6”); } else { System.out.println(“c is not 3.6″); } Stampa “c non è 3.6”. Non mi interessa la precisione oltre i […]

Doppio calcolo che produce un risultato dispari

Ho 2 numeri memorizzati come Double, 1.4300 e 1.4350. Quando sottraggo 1.4350 – 1.4300, mi dà il risultato: 0.0050000000000001155. Perché aggiunge 1155 alla fine e come posso risolverlo in modo che restituisca 0,005 o 0,0050? Non sono sicuro che l’arrotondamento funzionerà poiché sto lavorando con 2 e 4 numeri decimali.

Troncare (non arrotondare) i numeri decimali in javascript

Sto cercando di troncare i numeri decimali in posizioni decimali. Qualcosa come questo: 5.467 -> 5.46 985.943 -> 985.94 toFixed(2) fa esattamente la cosa giusta ma completa il valore. Non ho bisogno del valore arrotondato. Spero che questo sia ansible in javascript.

Perché (360/24) / 60 = 0 … in Java

Sto cercando di calcolare (360/24) / 60 Continuo a ricevere la risposta 0.0 quando dovrei ottenere 0.25 A parole: voglio dividere 360 ​​per 24 e poi dividere il risultato per 60 public class Divide { public static void main(String[] args){ float div = ((360 / 24) / 60); System.out.println(div); } } Questo stampa: 0.0 Perché? […]