2009-08-26 16 views
2

Ich verwende log4net, um eine formatierte Nachricht auszugeben. Der folgende CodeString.Format und log.DebugFormat Währung

log.DebugFormat("Balance: {0:c} ", balance); 

Ergebnisse in

"Balance: ¤1,000.00"

Warum ist die ungerade Zeichen erscheinen, und nicht ein $

+1

Haben Sie die Regionseinstellungen auf Ihrem Computer überprüft? – Stephan

+0

Wo melden Sie sich an? –

+0

Ich denke wirklich, dass es mit log4net zu tun hat, denn das funktioniert wie erwartet. log.Debug (String.Format ("Balance: {0: C}", Balance)); – Striker

Antwort

1

Ich könnte mir vorstellen, dass es etwas ist, mit dem zu tun Ihre regionalen Einstellungen.

versuchen, etwas wie folgt aus:

System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(<your culture setting>); 
log.DebugFormat("Balance: {0:c} ", balance); 

Wenn das dosen't Arbeit, dann können Sie immer den Debugger verwenden, den Wert zu überprüfen:

System.Threading.Thread.CurrentThread.CurrentCulture.NumberFormat ;

überprüfen Insbesondere den Wert:

ansiCurrencySymbol 

Um sicherzustellen, dass es auf das '$' Symbol gesetzt wird.

Sie auch in dieser Wikipedia-Seite intersted werden können: http://en.wikipedia.org/wiki/Currency_%28typography%29

Welche erklärt, was das Symbol Sie bekommen ist.

Im Einzelnen:

The currency sign (¤) is a character used to denote a currency, when the symbol for a particular currency is unavailable. 

It is particularly common in place of symbols, such as that of the Colón (₡), which are absent from most character sets and fonts. 

It can be described as a circle the size of a lowercase character with four short radiating arms at 45° (NE), 135° (NW), 225°, (SW) and 315° (SE). It is slightly raised over the baseline. 

It is represented in Unicode, as CURRENCY SIGN (U+00A4). In HTML, the character entity reference &curren; or numeric character reference &#164; may be used. 
+0

versuchte es, bekam das gleiche Ergebnis – Striker