前言
項目中遇到分攤金額的情況,最後一條的金額=總金額-已經分攤金額的和。
這樣可能導致最後一條分攤的時候是負數,所以自己寫了一個保留指定位數小數的方法。
擴展方法的使用,使得調用起來很優雅。
示例代碼
public static class DecimalExtension
{
/// <summary>
/// decimal保留指定位數小數
/// </summary>
/// <param name="num">原始數量</param>
/// <param name="scale">保留小數位數</param>
/// <returns>截取指定小數位數後的數量字符串</returns>
public static string ToString(this decimal num, int scale)
{
string numToString = num.ToString();
int index = numToString.IndexOf(".");
int length = numToString.Length;
if (index != -1)
{
return string.Format("{0}.{1}",
numToString.Substring(0, index),
numToString.Substring(index + 1, Math.Min(length - index - 1, scale)));
}
else
{
return num.ToString();
}
}
}
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。