2012-01-30 186 views
1

的例子说明了这个问题格式小数localizated和格式化

预期:

首先尝试:

const decimal value = 17.59m; 
const string format = "{0:0,000}"; 
var result = string.Format(format, value); 

这将导致课程的0,018因为文化为en-US和,被解释为千位分隔符。

第二个尝试:

const decimal value = 17.59m; 
var result = Convert.ToString(value, CultureInfo.GetCultureInfo("pt-BR")); 

现在,我得到17,59

如何使用asp.net框架功能我合并的格式和定位?

+0

你没有做任何分析这里(即获得一个字符串的'decimal'),但_formatting_得到的字符串表示的' decimal'。 – Oded 2012-01-30 20:07:46

回答

2

您可以直接在decimal值上调用ToString - 它具有重载格式字符串和CultureInfo对象的重载。

请注意,在数字格式字符串中,小数点分隔符表示为.(将转换为相应的小数点分隔符)。

此:

var result = 17.59m.ToString("0.000", CultureInfo.GetCultureInfo("pt-BR")); 

产地:

17,590 
+0

谢谢,可选的是用参数隐藏了ToString。 – Custodio 2012-01-30 20:08:41