In C# tipo doppio, come posso impostare il numero di cifre dopo il punto, ho bisogno solo di 4. grazie.Impostare il numero di cifre dopo il punto in doppio
risposta
Non è possibile. Binary floating point non funziona così. Puoi il formato a doppio senso (ad esempio utilizzando "f4"
come stringa di formato), ma se hai a che fare con valori che hanno un numero naturale di posti decimali, allora dovresti probabilmente usare decimal
. Potresti darci maggiori informazioni su cosa rappresentano i tuoi valori?
sto facendo una parità tra 2 punti di valori x e ci sono 5.0000 e 4,999,999996 millions e ho bisogno che sia vero –
@Bass: se stai facendo solo un test di uguaglianza, la risposta di nobugz è probabilmente la strada giusta da percorrere. Vorrei comunque considerare se si desidera utilizzare decimal invece - dipende dal tipo di valori che hai. –
Non è possibile impostare direttamente il numero di cifre dopo il punto sul doppio.
È possibile modificare la rappresentazione della stringa del doppio utilizzando una stringa di formato.
Un esempio sarebbe:
string.Format("{0:0.####}", number);
Oppure come sottolinea Jon Skeet:
number.ToString("f4")
Usare questo per confrontare due numeri in virgola mobile a 4 cifre nella frazione:
if (Math.Abs(a - b) < 1E-4) {
// close enough
//...
}
Se vuoi essere assolutamente sicuro che siano uguali, allora dovrebbe essere Double.epsilon piuttosto che 1e-4. Se vuoi dire che sono 'abbastanza vicino' uguale a quello che hai codice, va bene – zebrabox
Double.Epsilon non può funzionare così com'è, è troppo piccolo. Un epsilon appropriato è qualcosa come un * 1E-15 ma che deve essere incrementato per gli errori accumulati da ciascuna operazione FP. –
- 1. LISP - cifre dopo il punto decimale
- 2. Tronca il numero di cifre del doppio valore in C#
- 3. Formato tipo doppio con il numero minimo di cifre decimali
- 4. vuole visualizzare esattamente 2 cifre dopo il punto
- 5. Stampa float PHP con 3 cifre dopo il punto decimale?
- 6. Come restituire il numero float con 2 cifre dopo il punto decimale?
- 7. Come formattare il doppio valore per una determinata località e il numero di cifre decimali?
- 8. Lasciare solo due cifre decimali dopo il punto
- 9. limitare il numero di cifre in regex
- 10. Elimina le cifre dopo il numero di due cifre decimali non arrotondato in javascript?
- 11. Numero massimo di cifre decimali che possono influenzare un doppio
- 12. Conversione C/C++ da doppio a punto fisso con numero minimo di cifre diverse da zero
- 13. Come utilizzare il filtro float per mostrare solo due cifre dopo il punto decimale?
- 14. Mostrando il numero in 2 cifre decimali in gridview
- 15. Come calcolare il numero di cifre decimali significative di un doppio C++?
- 16. Dividi il doppio in due int, un int prima del punto decimale e uno dopo
- 17. Eclipse numero di riga doppio clic per punto di interruzione
- 18. Tipo di dati per memorizzare il numero di 20 cifre
- 19. Numero massimo di cifre dopo la virgola decimale utilizzando BigDecimal
- 20. Da Doppio a Decimale senza arrotondamento dopo 15 cifre
- 21. Come controllare di visualizzare il numero di cifre in JSP?
- 22. python: ottieni il numero senza cifre decimali
- 23. In Perl, come posso limitare il numero di posti dopo il punto decimale ma non avere zero finali?
- 24. Rimuovi il punto decimale dal numero in JavaScript
- 25. Limitare sia il numero frazionario sia il numero totale di cifre durante la formattazione di un galleggiante per la visualizzazione
- 26. iPhone: Quante cifre dovrebbero essere dopo un punto di un float
- 27. Usa doppio punto (: :) in #define
- 28. Esistono funzioni per il troncamento di un doppio in java?
- 29. Come impostare il punto di interruzione in Firebug in alert()?
- 30. Uscita flusso C++ con 3 cifre dopo il punto decimale. Come?
inputValue = Math.Round (inputValue, 4); adattati da http://stackoverflow.com/questions/2357855/round-double-in-two-decimal-places-in-c – jade290