Domande taggate «floating-point»

I numeri in virgola mobile sono approssimazioni di numeri reali che possono rappresentare intervalli maggiori di numeri interi ma utilizzano la stessa quantità di memoria, a costo di precisione inferiore. Se la tua domanda riguarda piccoli errori aritmetici (ad es. Perché 0,2 + 0,1 equivalgono a 0,300000001?) O errori di conversione decimali, leggi la pagina "info" collegata di seguito prima di pubblicare.




3
Il doppio cast a unsigned int su Win32 viene troncato a 2.147.483.648
Compilazione del codice seguente: double getDouble() { double value = 2147483649.0; return value; } int main() { printf("INT_MAX: %u\n", INT_MAX); printf("UINT_MAX: %u\n", UINT_MAX); printf("Double value: %f\n", getDouble()); printf("Direct cast value: %u\n", (unsigned int) getDouble()); double d = getDouble(); printf("Indirect cast value: %u\n", (unsigned int) d); return 0; } Uscite (MSVC …




7
Quando utilizzare float vs decimale
Sto creando questa API e il database memorizzerà i valori che rappresentano uno dei seguenti: percentuale media Vota Onestamente non ho idea di come rappresentare qualcosa che l'intervallo è compreso tra 0 e 100% in numeri. Dovrebbe essere 0,00 - 1,00 0,00 - 100,00 qualsiasi altra alternativa che non conosco …

1
Strano comportamento di (^) in Haskell
Perché GHCi fornisce una risposta errata di seguito? GHCi λ> ((-20.24373193905347)^12)^2 - ((-20.24373193905347)^24) 4.503599627370496e15 python3 >>> ((-20.24373193905347)**12)**2 - ((-20.24373193905347)**24) 0.0 AGGIORNAMENTO Vorrei implementare la funzione di Haskell (^) come segue. powerXY :: Double -> Int -> Double powerXY x 0 = 1 powerXY x y | y < 0 = …

5
Somma efficiente e stabile dei numeri ordinati
Ho un elenco abbastanza lungo di numeri positivi in ​​virgola mobile ( std::vector<float>, dimensione ~ 1000). I numeri sono ordinati in ordine decrescente. Se li riassumo seguendo l'ordine: for (auto v : vec) { sum += v; } Immagino di poter avere qualche problema di stabilità numerica, poiché vicino alla …

2
Sintassi valida della chiamata dello pseudo-distruttore per una costante mobile
Considera il seguente programma dimostrativo. #include <iostream> int main() { typedef float T; 0.f.T::~T(); } Questo programma è compilato da Microsoft Visual Studio Community 2019. Ma clanged gccemettere un errore come questo prog.cc:7:5: error: unable to find numeric literal operator 'operator""f.T' 7 | 0.f.T::~T(); | ^~~~~ Se scrivere l'espressione come …
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.