Domanda

The Back Story

Ho alcuni valori decimali che io sono la visualizzazione sotto forma di stringhe in una pagina web come parte di una stringa più grande. Ho cominciato con un standard Numerico Stringa formato di uscita questo. Per es.

myDecimal.ToString("P0")

Il 0 dopo la P dice che voglio senza decimali. Questo funziona per quanto va, in che il mio ouput finisce per guardare qualcosa di simile:

  

calcolato come sopra in base al tasso di contribuzione minima Impresa graduale del 2%

Il problema di spazio

Ho molta voglia di sbarazzarsi di quello spazio tra il numero e il segno di percentuale come in alcuni casi si finisce per dividere attraverso le linee. E inoltre, io preferisco il% intromettermi fino al numero.

Possibili Soluzioni alternative

1. html / css soluzione

ho potuto mettere un tag o un <nobr> <span style="white-space: nowrap;"> intorno ad esso. Ma, che si sente a disagio, e comunque preferisco l'% intromettermi destra fino al numero come penso che un aspetto migliore. E 'come avremmo scriverlo nei rapporti in questo collo dei boschi, quindi è come lo voglio sulla pagina web.

2. stringa di formato personalizzato

Ho intenzione di finire con una stringa di formato personalizzato numerico, per es.

myDecimal.ToString("0%")

La questione

E 'più comune per visualizzare le percentuali con uno spazio tra il numero e il segno di percentuale? Questo mi sorprenderebbe, ma potrebbe essere.

C'è un modo per dire al standard numerico stringa di formato Non voglio lo spazio?

C'è qualche svantaggio di utilizzare un Custom numerico stringa di formato per un standard numerico stringa di formato

Ok - l'ammetto, che è stato più di una domanda -. Extra Credit se tutti rispondere

È stato utile?

Soluzione

http://www.nasdaq.com/ o http://finance.yahoo.com/ sembra che il segno di percentuale a destra dopo il numero senza spazi inbetween è comune:)

Dai un'occhiata alla http: // MSDN. microsoft.com/en-us/library/system.globalization.numberformatinfo.percentpositivepattern.aspx

Probabilmente dipende dalla cultura, il valore predefinito (invariante) beeing n%

Altri suggerimenti

Questo ha funzionato per me:

System.Globalization.CultureInfo  newCulture = (System.Globalization.CultureInfo)System.Threading.Thread.CurrentThread.CurrentCulture.Clone();
newCulture.NumberFormat.PercentPositivePattern = 1;  // Avoid putting a space between a number and its percentage
System.Threading.Thread.CurrentThread.CurrentCulture = newCulture;

Per modificare il valore predefinito PercentPositivePattern, è necessario creare un nuovo oggetto CultureInfo e utilizzarlo al posto del default, che è probabilmente "it-IT". (In alternativa, è possibile specificare "en-za" come la cultura nel web.config, ma io non raccomandare che per ovvie ragioni).

C'è un grande post sulle ASP Forum che spiega come fare tutto questo . Vedere il codice scritto dal terzo manifesto (m0brien). Ho copiato il suo codice esatto in metodo Page_Load della mia pagina master, in modo che io non devo pensarci più.

Naturalmente, si può sempre e solo non String.Format (). Sostituire ("", String.Empty), ma che avrei dovuto farlo in tutto il sito. In più, onestamente, dove sta il divertimento che quando si poteva rimboccarsi le maniche e giocare con i tuoi valori di globalizzazione ???

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top