2012-10-03 71 views
1

我正在嘗試應用程序(ASP.NET MVC 4)中的價格值的不同格式,首先我在LINQPad中的代碼下面進行了測試,並且它運行良好(沒有無意義的尾隨零)。但是,當我把這些代碼,特別是在我的代碼中的string.Format(「G」,值),它不起作用,尾隨零再次出現!爲什麼?爲什麼它在LINQPad中工作,但不在我的代碼中?

LINQPad片段:

decimal d = 0.3M, d2 = 0.45M, d3 = 13.2M, d4 = 1049M, d5 = 12492.4M, d6 = 2000M; 

var culture = CultureInfo.CreateSpecificCulture("vi-VN"); 

Console.WriteLine(string.Format(culture, "{0:G}", d)); 
Console.WriteLine(string.Format(culture, "{0:G}", d2)); 
Console.WriteLine(string.Format(culture, "{0:G}", d3)); 
Console.WriteLine(string.Format(culture, "{0:G}", d4)); 
Console.WriteLine(string.Format(culture, "{0:G}", d5)); 
Console.WriteLine(string.Format(culture, "{0:G}", d6)); 

LINQPad輸出:

// Output: 
// 0,3 
// 0,45 
// 13,2 
// 1049 
// 12492,4 
// 2000 

我的應用程序輸出:

// Output: 
// 0,30 
// 0,45 
// 13,20 
// 1049,00 
// 12492,40 
// 2000,00 

UPDATE 1:我嘗試再次以下在.NET 4控制檯應用程序代碼,和一個ASP.NET MVC 4(.NET 4和.NET 4.5),並且都運行良好(無零)。但是在我的應用程序中它仍然不起作用,即使我把它們放在一個空的行爲中。唯一不同的是我的應用程序(ASP.NET MVC 4)是在VS2010 + .NET 4中創建的,後來升級到VS2012 + .NET 4.5。它有問題嗎?

decimal d = 0.3M; 
string s = string.Format(CultureInfo.CreateSpecificCulture("vi-VN"), "{0:G}", d); 
+0

您在ASP.NET頁面中顯示輸出還是寫入控制檯? –

+0

你也是積極的,你正在使用您的網站上的最新代碼?即您已重新構建項目。添加一些調試行來驗證,如'Debug.WriteLine(culture.NumberFormat.NumberDecimalDigits);' –

+0

@D Stanley:我在ASP.NET MVC 4代碼中詢問這個問題,上面的代碼只是一個簡單的例子,使用相同的格式字符串{0:G} –

回答

0

看來,這僅僅是我的應用程序的問題,不是的ToString( 「G」)。謝謝閱讀。

0

使用{0:G29}代替

decimal d = 0.3M, d2 = 0.45M, d3 = 13.2M, d4 = 1049M, d5 = 12492.4M, d6 = 2000M; 

var culture = CultureInfo.CreateSpecificCulture("vi-VN"); 

Console.WriteLine(string.Format(culture, "{0:G29}", d)); 
Console.WriteLine(string.Format(culture, "{0:G29}", d2)); 
Console.WriteLine(string.Format(culture, "{0:G29}", d3)); 
Console.WriteLine(string.Format(culture, "{0:G29}", d4)); 
Console.WriteLine(string.Format(culture, "{0:G29}", d5)); 
Console.WriteLine(string.Format(culture, "{0:G29}", d6)); 

參考:Remove trailing zeros

+2

但是爲什麼?我在一個全新的控制檯應用程序中嘗試了OP的代碼,它沒有*添加尾隨零。 –

+0

看看這個http://stackoverflow.com/questions/4525854/remove-trailing-zeros –

+1

OP不要求_how_去除尾隨零,他/她在問爲什麼他們在那裏擺在首位。 –

相關問題