2010-09-29 58 views
0

我需要格式化數字,如「1.2452」以顯示「452」所以我不想看到所有的數字。問題是,我無法直接控制顯示編號,我只能通過根據NumberFormatInfo類設置一個格式字符串來格式化它。這是可能的,如果是的話,如何?如何使用NumberFormatInfo指定數字和小數位

歡呼

編輯:

我發現我可以訂閱「FormatEvent」,這使我對做自定義格式爲數字格式後的字符串。感謝大家的幫助和見解! :)

+0

我只是不想顯示完整的數字。只有最後的數字很重要。這是外匯報價。 – bretddog 2010-09-29 14:13:42

回答

2

您可以通過實施IFormatter來創建自己的格式說明符。但是你不能這樣做那些已經被烘焙到.NET中的類型。像System.Double或System.Decimal一樣,或者其值爲1.2452的變量類型。這些標準.NET類型的格式說明符不允許選取最後3位數字。

帶有已更改的NumberFormatInfo的自定義文化不支持對格式設置的足夠控制。

您需要控制實際值。然後它很簡單。

0

我敢肯定,這是不可能的,因爲你只能從最不重要的過濾出來。

0

我想我們需要確切知道你需要什麼算法來格式化數字。 但你可以將它轉換爲一個字符串,然後只是做一個子串。

0

使用.NET

[math]::pi        *-- give 3.1415926538979* 
([math]::pi).tostring().split(".")[1] *-- gives: 14159265358979* 
([math]::pi).tostring().split(".")[1].substring(0,4) *-- Gives : 1415* 
+1

使用.NET?你確定嗎?! – 2010-09-29 16:07:14

0

的NumberFormatInfo沒有提供足夠的靈活性,以適應這個(奇異)格式。我建議只是有一個ReadOnly財產,相應地設置您的號碼的格式...

public string NumberFormatted 
{ 
    get 
    { 
     string num = YourNumber.ToString(); 
     int index = num.IndexOf("."); 
     if(index > -1 && index < num.Length - 2) 
      num = num.Substring(index + 2); 
     return num; 
    } 
} 
相關問題