2016-02-27 10 views

risposta

6
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.

+2

Sembra male, ci sono altri modi per ottenere lo stesso senza quel lungo pezzo di codice. – Snak

+0

Quali? L'utilizzo di F27 visualizza sempre 27 cifre e non riduce gli zeri finali – Bogey

2

provare questo.

number.ToString("F27"); 
+2

Giù per elettori, includi il motivo del down voting, non è corretto declassare senza alcun motivo. –

+0

Cosa succede se ci provo? Perché non ci hai provato prima di rispondere? –

+1

@ThomasWeller Perché l'OP non ha fornito il suo codice completo e una suite di test, quindi provare per OP sarebbe impossibile. –

8

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"); 
2

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) 
+0

Questa risposta condivide la stessa idea della mia. ;) upvoted. Sì, penso anche che sarebbe necessario un decimale per mantenere la precisione. – Ian

-2

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

Problemi correlati