Ho un float di circa 27 cifre significative, quando chiamo "ToString()" ottengo "6.8248054E + 26", come posso ottenere il valore normale esatto?Quale stringa di formato visualizza il float così com'è?
risposta
var number = 0.111111111100000000000000000;
string result = String.Format("{0:#,0.###########################}", number);
Questo mostrerebbe tutti i posti decimali fino al 27, ma omette tutti gli zeri finali. Quindi il numero sopra sarebbe visualizzato come 0.1111111111.
provare questo.
number.ToString("F27");
Giù per elettori, includi il motivo del down voting, non è corretto declassare senza alcun motivo. –
Cosa succede se ci provo? Perché non ci hai provato prima di rispondere? –
@ThomasWeller Perché l'OP non ha fornito il suo codice completo e una suite di test, quindi provare per OP sarebbe impossibile. –
So che si desidera visualizzare 27 cifre, cifra significativa e si utilizza float
. Si può sempre fare come questo:
f.ToString("F27");
Ma davvero, semplicemente non corrispondono. Considerare l'utilizzo di decimal
per raggiungere tale precisione:
decimal dc = 91.123142141230131231231M; //your 27-digit figure:
dc.ToString("F27");
Il problema non è con quale formato si utilizza. Dipende piuttosto dalla precisione del tipo di dati.
Da MSDN:
float
ha una precisione di 7 cifre. decimal
d'altra parte ha una precisione di 28-29 cifre.
Detto questo, se si assegna il valore a una variabile di tipo decimal
, anche se si chiama il metodo ToString()
senza alcun formato di stringa, si otterrà ciò che si desidera.
dc = 6.8248054E+26M;
Console.WriteLine(dc.ToString()); // returns the whole thing including any trailing zero(s)
Questa risposta condivide la stessa idea della mia. ;) upvoted. Sì, penso anche che sarebbe necessario un decimale per mantenere la precisione. – Ian
Con i galleggianti non sarà possibile ottenere quella precisione.
Ad ogni modo, è necessario utilizzare il formatter "F" o "N", quelli stamperanno il numero come si desidera.
È possibile controllare tutte le formattazioni qui: Standard Numeric Format Strings
- 1. Cambiare il formato di stampa float predefinito
- 2. printf specifica stringa di formato intero per float
- 3. $ ionicActionSheet che visualizza il formato errato
- 4. Quale unità di misura usa Paint.setTextSize (float)?
- 5. Converti float in formato HH: MM
- 6. Stringa da EditText a float
- 7. Quale formato salva NSKeyedArchiver?
- 8. Quale fuso orario visualizza Date.toString()?
- 9. hash formato stringa
- 10. Formato stringa di annidamento
- 11. Rails 3, Visualizza solo il formato della data?
- 12. pitone, stringa di formato
- 13. Matstotlib: specifica il formato dei float per le etichette tick
- 14. Formato valore float con 2 posizioni decimali
- 15. Go, Golang, FormatFloat: convertire il numero float a stringa
- 16. Formato float con modulo json standard
- 17. Visualizza formato di data, senza l'anno in momentjs
- 18. Converti la stringa in float?
- 19. Python, voglio stampare float nel formato esatto + -00.00
- 20. stringa di formato in notazione scientifica
- 21. Quale formato di archiviazione delle impostazioni scegliere?
- 22. Workout il formato di stringa utilizzato per la formattazione DateTime
- 23. Stringa di formato con trattini
- 24. Controllare il formato della stringa Python?
- 25. Non abbastanza argomenti per il formato stringa
- 26. formato stringa restituisce il risultato inaspettato
- 27. Come fornire segnaposto stringa personalizzata per il formato stringa
- 28. Come sapere quale formato un controllore ha deciso di rendere
- 29. Formato stringa usando MultiBinding?
- 30. Calcola il decimo float
Si prega di essere più chiaro nella sua interrogazione. –
Puoi fare un esempio di ciò che stai cercando di ottenere? – Rariolu
Ho chiarito un po 'la domanda –