我需要格式化數字,如「1.2452」以顯示「452」所以我不想看到所有的數字。問題是,我無法直接控制顯示編號,我只能通過根據NumberFormatInfo類設置一個格式字符串來格式化它。這是可能的,如果是的話,如何?如何使用NumberFormatInfo指定數字和小數位
歡呼
編輯:
我發現我可以訂閱「FormatEvent」,這使我對做自定義格式爲數字格式後的字符串。感謝大家的幫助和見解! :)
我需要格式化數字,如「1.2452」以顯示「452」所以我不想看到所有的數字。問題是,我無法直接控制顯示編號,我只能通過根據NumberFormatInfo類設置一個格式字符串來格式化它。這是可能的,如果是的話,如何?如何使用NumberFormatInfo指定數字和小數位
歡呼
編輯:
我發現我可以訂閱「FormatEvent」,這使我對做自定義格式爲數字格式後的字符串。感謝大家的幫助和見解! :)
您可以通過實施IFormatter來創建自己的格式說明符。但是你不能這樣做那些已經被烘焙到.NET中的類型。像System.Double或System.Decimal一樣,或者其值爲1.2452的變量類型。這些標準.NET類型的格式說明符不允許選取最後3位數字。
帶有已更改的NumberFormatInfo的自定義文化不支持對格式設置的足夠控制。
您需要控制實際值。然後它很簡單。
我敢肯定,這是不可能的,因爲你只能從最不重要的過濾出來。
我想我們需要確切知道你需要什麼算法來格式化數字。 但你可以將它轉換爲一個字符串,然後只是做一個子串。
使用.NET
[math]::pi *-- give 3.1415926538979*
([math]::pi).tostring().split(".")[1] *-- gives: 14159265358979*
([math]::pi).tostring().split(".")[1].substring(0,4) *-- Gives : 1415*
使用.NET?你確定嗎?! – 2010-09-29 16:07:14
的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;
}
}
我只是不想顯示完整的數字。只有最後的數字很重要。這是外匯報價。 – bretddog 2010-09-29 14:13:42