說明: 平時編程中總會遇到數字處理問題, 這裡將自己平時總結的一些數字處理小技巧結合MSDN上相關的介紹, 列舉一些常用的數字處理技術.
原理非常簡單, 不再細說, 只圖自己和大家引用或參考時方便.
1.對計算結果四捨五入(d:數,i小數位數)
效果: 233.8763
--> 233.88
計算結果四捨五入CODE
//d: 表示四捨五入的數字; i: 保留的小數位數
public static double Round(double d, int i)
{
if (d >= 0)
{
d += 5 * Math.Pow(10, -(i + 1));
}
else
{
d += -5 * Math.Pow(10, -(i + 1));
}
string str = d.ToString();
string[] strs = str.Split('.');
int idot = str.IndexOf('.');
string prestr = strs[0];
string poststr = strs[1];
if (poststr.Length > i)
{
poststr = str.Substring(idot + 1, i);//截取需要位數
}
if (poststr.Length <= 2)
{
poststr = poststr + "0";
}
string strd = prestr + "." + poststr;
d = Double.Parse(strd);//將字符串轉換為雙精度實數
return d;
}
2.將商品金額小寫轉換成大寫
效果: 1234566789
-->壹拾貳億三仟肆佰伍拾陸萬陸仟柒佰捌拾玖元
將金額小寫轉化為大寫CODE
private void Convert_Click(object sender, EventArgs e)
{
String[] Scale = { "分", "角", "元", "拾", "佰", "仟", "萬", "拾", "佰", "仟", "億", "拾", "佰", "仟", "兆", "拾", "佰", "仟" };
String[] Base = { "零", "壹", "貳", "三", "肆", "伍", "陸", "柒", "捌", "玖" };
String Temp = textBox1.Text.ToString();
String Info = null;
int index = Temp.IndexOf(".", 0, Temp.Length);//判斷是否有小數點
if (index != -1)
{
Temp = Temp.Remove(Temp.IndexOf("."), 1);
for (int i = Temp.Length; i > 0; i--)
{
int Data = Convert.ToInt16(Temp[Temp.Length - i]);
Info += Base[Data - 48];
Info += Scale[i - 1];
}
}
else
{
for (int i = Temp.Length; i > 0; i--)
{
int Data = Convert.ToInt16(Temp[Temp.Length - i]);
Info += Base[Data - 48];
Info += Scale[i + 1];
}
}
textBox2.Text = Info;
}