c# - Format currency with symbol before instead of after -
i use converter textbox currency. works great, except €-sign after value instead of before.
here code:
public object convert(object value, type targettype, object parameter, cultureinfo culture) { var dvalue = value decimal?; return string.format(cultureinfo.getcultureinfo("de-de"), "{0:c}", dvalue ?? 0); }
i know can put before instead of after so:
public object convert(object value, type targettype, object parameter, cultureinfo culture) { var dvalue = value decimal?; return "€ " + string.format(cultureinfo.getcultureinfo("de-de"), "{0:c}", dvalue ?? 0).replace("€", "").trim(); }
but i'm assuming here there should standard in formatter this. so, know how put currency before value instead of behind using formatter itself?
for example: decimal 12345678.90
, don't want display [see first method] 12.345.678,90 €
, want display [see second method] € 12.345.678,90
instead.
try in way
public object convert(object value, type targettype, object parameter, cultureinfo culture) { var dvalue = value decimal?; thread.currentthread.currentculture = new cultureinfo("de"); var nfi = (numberformatinfo)numberformatinfo.currentinfo.clone(); nfi.currencysymbol = "€"; return string.format(nfi,"{0:c}",dvalue) }
if doesn't work try without line
thread.currentthread.currentculture = new cultureinfo("de");
if doesn't work again try changing currencynegativepattern property , currencypositivepattern property value of 2
nfi.numberformat.currencypositivepattern = 2; nfi.numberformat.currencynegativepattern = 2;
2 means "€ + number"
Comments
Post a Comment