我在我的程序中有一個小數,它可能在小數點後有零,我想擺脫它們。從C中的小數中刪除任何尾隨零#
我希望通過將十進制轉換爲字符串並僅使用基於發現小數點的位置的子字符串以及小數點後的內容是否爲零來實現此目的。這是我想出的:
string number = Convert.ToString(MyDouble);
if (number.Contains("."))//If there are trailing zeros
{
//If the numbers after the decimal point (when taken as an integer) equal 0
if(Convert.ToInt16(number.Substring(number.IndexOf("."))) == 0)
{
//Remove anything after the decimal point
number = number.Substring(0, number.Length - number.IndexOf("."));
}
}
result = Convert.ToDecimal(number);
但這不起作用。它出什麼問題了?
您可以簡單地使用自定義格式說明符(特別是看看'#'和'0')https://msdn.microsoft.com/en-us/library/0c899ak8(v=vs.110).aspx – hatchet
我真的不明白這是什麼正試圖完成。通常,人們可以將數值存儲在內存中,就像它們的數字(不是字符串)表示一樣。然後,在某種類型的用戶界面中顯示它們時,只需應用一個字符串格式器即可。爲什麼這次談話? – David
你可以從樣本中刪除所有不相關的代碼,並用常量代替值:'number'是主要候選人? –