IEEE 754 è lo standard a virgola mobile più comune e ampiamente utilizzato, in particolare il binary32 a precisione singola noto anche come float e il formato binary64 a doppia precisione noto come formato doppio.
È noto che i NaN si propagano in aritmetica, ma non sono riuscito a trovare alcuna dimostrazione, quindi ho scritto un piccolo test: #include <limits> #include <cstdio> int main(int argc, char* argv[]) { float qNaN = std::numeric_limits<float>::quiet_NaN(); float neg = -qNaN; float sub1 = 6.0f - qNaN; float sub2 = …
Perché i confronti dei valori NaN si comportano diversamente da tutti gli altri valori? Cioè, tutti i confronti con gli operatori ==, <=,> =, <,> in cui uno o entrambi i valori sono NaN restituiscono false, contrariamente al comportamento di tutti gli altri valori. Suppongo che questo semplifichi in qualche …
Il tipo di dati float è un virgola mobile IEEE 754 a 32 bit a precisione singola e il doppio tipo di dati è un virgola mobile IEEE 754 a 64 bit a precisione doppia. Cosa significa? E quando dovrei usare float invece di double o viceversa?
Per chiarezza, se sto usando un linguaggio che implementa IEE 754 float e dichiaro: float f0 = 0.f; float f1 = 1.f; ... e poi stampandoli indietro, riceverò 0,0000 e 1,0000 - esattamente. Ma IEEE 754 non è in grado di rappresentare tutti i numeri lungo la linea reale. Vicino …
So che la maggior parte dei decimali non ha un'esatta rappresentazione in virgola mobile (la matematica in virgola mobile è rotta? ). Ma non vedo perché 4*0.1sia stampato bene come 0.4, ma 3*0.1non lo è, quando entrambi i valori hanno effettivamente brutte rappresentazioni decimali: >>> 3*0.1 0.30000000000000004 >>> 4*0.1 0.4 …
No, questa non è un'altra domanda "Why is (1 / 3.0) * 3! = 1" . Ultimamente ho letto parecchi punti in virgola mobile; in particolare, come lo stesso calcolo potrebbe dare risultati diversi su architetture o impostazioni di ottimizzazione diverse. Questo è un problema per i videogiochi che memorizzano …
È possibile ottenere una divisione per 0 (o infinito) nel seguente esempio? public double calculation(double a, double b) { if (a == b) { return 0; } else { return 2 / (a - b); } } In casi normali non lo sarà, ovviamente. Ma cosa succede se ae bsono …
PHP è famoso per il suo tipo di giocoleria. Devo ammettere che mi lascia perplesso e ho difficoltà a scoprire le cose logiche / fondamentali di base nei confronti. Ad esempio: se $a > $bè vero ed $b > $cè vero, deve significare anche che $a > $cè sempre vero? …
>>> (float('inf')+0j)*1 (inf+nanj) Perché? Ciò ha causato un brutto bug nel mio codice. Perché 1l'identità moltiplicativa non è dare (inf + 0j)?
Ho letto di virgola mobile e ho capito che NaN potrebbe derivare da operazioni. Ma non riesco a capire cosa siano esattamente questi concetti. Qual'è la differenza tra loro? Quale può essere prodotto durante la programmazione C ++? Come programmatore, potrei scrivere un programma che provoca un sNaN?
In JavaScript, il valore NaN può essere rappresentato internamente da una vasta gamma di doppi a 64 bit. In particolare, qualsiasi doppio con la seguente rappresentazione bit a bit: x111 1111 1111 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx Viene interpretato come NaN. La …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.