2012-02-20 48 views
1

所以我正在學習和實踐WP7應用程序開發。在小數點後改變輸出值的整數

我正在使用整數(貨幣),它似乎總是顯示小數位後的四個整數。我試圖把它縮小到只有一個或兩個小數位。

我一直在試圖使用"my variable.ToString("C2")"(C爲貨幣,2個整數的數小數點後)

我可能失去了一些東西很明顯,但請大家幫忙

enter image description here

+0

你有沒有考慮過看十進制,雙精度和貨幣類型的string.Format方法..? – MethodMan 2012-02-20 14:17:58

+0

你剛剛嘗試.ToString(「c」)?它應該將您的價值轉換爲貨幣格式,女巫適當的小數位數。 – MarcinJuraszek 2012-02-20 14:19:03

+0

你是否從VisualStudia翻譯錯誤信息?它的初始化之前(不能使用變量: – 2012-02-20 14:19:48

回答

0

「C」格式的字符串定義了MSDN中所述的貨幣說明符。這將包括當前文化的貨幣符號,或者如果提供了特定文化,例如

double amount = 1234.5678; 
string formatted = amount.ToString("C", CultureInfo.CreateSpecificCulture("en-US")); 
// This gives $1234.56 

在你的情況,似乎有一組有限的,你支持貨幣符號的,所以我會建議使用定點格式說明符「F」來代替。默認情況下,這會給你2個小數點,但你可以指定一個數字來改變它,例如

double amount = 1234.5678; 
string formatted = amount.ToString("F"); 
// This gives 1234.56 
formatted = amount.ToString("F3"); 
// This gives 1234.567 

使用固定點說明符將使您能夠控制小數點的數量並使您連接貨幣符號。

1
decimal number = new decimal(1000.12345678); 
string text = number.ToString("#.##"); 

輸出:

1000,12 

的另一種方式:

NumberFormatInfo nfi = new NumberFormatInfo(); 
nfi.CurrencyDecimalDigits = 2; 
decimal val = new decimal(1000.12345678); 
string text = val.ToString("c", nfi); 

當格式化貨幣,NumberFormatInfo允許指定以下屬性,以及:

  • CurrencyDecimalDigits
  • CurrencyDecimalSeparator
  • CurrencyGroupSeparator
  • CurrencyGroupSizes
  • CurrencyNegativePattern
  • CurrencyPositivePattern
  • CURRENCYSYMBOL

參見MSDN Custom Numeric Format Strings更多的例子

+0

嘗試這樣做,也沒有產生任何錯誤,但仍然顯示小數點後4位。例如£40.0000 – AlexDuncan 2012-02-20 14:33:35

+0

如果它顯示的4個十進制地方呢?在調試器/監視窗口/文本/網頁?基本上表明您已經使用 – sll 2012-02-20 14:38:06

+0

它顯示在WP模擬器四位小數代碼,當應用程序正在運行 – AlexDuncan 2012-02-20 14:41:03

0

我想補充到 「SLL」 的答案是要注意對Culture(他們往往忘記mantion本)的唯一的事情,像這樣的(實施例)

string text = val.ToString("#.##", CultureInfo.InvariantCulture); 
+0

我必須添加一個'文化'命名空間只是爲了這個嗎? – AlexDuncan 2012-02-20 14:37:52

+0

@AlexD:System.Globalization mapespace – Tigran 2012-02-20 14:44:19

+0

是的,我可以添加命名空間好吧;)但它的你的答案跟我的工作代碼相關的結構是什麼,我覺得複雜,這個東西文化 – AlexDuncan 2012-02-20 14:57:24

0
double total = 526.4134 
string moneyValue = total.ToString("c"); 

這將顯示在它格式:$###

+0

試過了!沒有錯誤出現,但在仿真器中運行時仍顯示4個小數位 – AlexDuncan 2012-02-20 14:44:24