È possibile emulare in qualche modo il float di precisione singola in Javascript? Secondo il blog di Doug Crockford "Number is 64-bit floating point", ma devo usare uno solo per il porting dell'algoritmo C++ che calcola l'errore float di precisione singola.Emulazione float di precisione singola in Javascript (float32)
6
A
risposta
4
Lo standard ES6 ha Math.fround() che converte un float64 in float32 e quindi di nuovo indietro, arrotondando efficacemente il float alla precisione float32. Vedi this article per i dettagli.
-1
Prova questa funzione JavaScript. Utilizza .toFixed (6) per arrotondare il numero a sei cifre decimali.
function ToSingle(s) {
s = s.toString().toUpperCase();
if (s.indexOf("E") == -1) s = parseFloat(s).toExponential().toUpperCase();
if (s.indexOf("E") == -1) return s
var o = s.split("E");
var s1 = o[0];
if (s1.indexOf(".") == -1) return s
if (s1.split(".")[1].length < 7) return s;
var num = parseFloat(s1);
if (num + "" == "NaN") return s;
return num.toFixed(6) + "E" + o[1];
}
Problemi correlati
- 1. Differenza tra float Python e numpy float32
- 2. Precisione arbitraria Numeri float su JavaScript
- 3. Operazioni matematiche di precisione singola in .NET?
- 4. Come stampare un float a precisione singola con printf
- 5. Memorizzazione di due valori float in una variabile float singola
- 6. Come forzare i pandas read_csv a usare float32 per tutte le colonne float?
- 7. Riguardo tipo float precisione
- 8. Emulazione SQL LIKE in JavaScript
- 9. Precisione float Python senza precisione intera dopo il punto decimale
- 10. Javascript Float + Float = String?
- 11. javascript float from/to bits
- 12. Imposta la precisione di visualizzazione di un float in Ruby
- 13. Galleggiante galleggiante di precisione in Python
- 14. trasmesso da float32 a int in Go
- 15. Sospensione: Trovato: float, previsto: doppia precisione
- 16. SELEZIONA un FLOAT con una precisione data
- 17. Seleziona float da MySQL con precisione corretta
- 18. uscita per trasmettere numeri float con precisione
- 19. Perché il galleggiante è "a precisione singola"?
- 20. Imposta la precisione per un numero float in PHP
- 21. Come convertire le stringhe in float con precisione perfetta?
- 22. Lua - imballaggio numeri a virgola mobile in singola precisione IEEE754
- 23. somma Float con javascript
- 24. Cercare la libreria di emulazione di tipo Typed Javascript
- 25. Moltiplicazione int e float in javascript
- 26. Emulazione di un browser web
- 27. JavaScript ha una precisione del numero a virgola mobile doppia?
- 28. decimale precisione di carri
- 29. Precisione scarsa della riduzione per la virgola mobile a precisione singola
- 30. Emulazione di FP64 con 2 FP32 su una GPU
Due osservazioni: (1) L'ultima parola dovrebbe essere "errore", non è "errore". "errore" è un termine tecnico nel trattare con calcoli in virgola mobile. (2) Puoi dare qualche contesto per il motivo per cui hai bisogno dell'errore in un calcolo a virgola mobile? Può darsi che ci siano altri modi per raggiungere il tuo obiettivo finale senza emulare la precisione singola in javascript. –