/* 創造者:菜刀打好部落格
* 建立日期: 2023年09乙個月04號碼
* 特徵:money型別轉換**/
public class moneyhelper;
///
/// 把金額轉換為漢字表示的數量,小數點後四捨五入保留兩位
///
/// 小寫金額
/// 人民幣大寫
public static string amounttochinese(decimal amount)
// 假設是負數,先轉換為正數
bool negative = false;
if (amount < 0)
// 乘以100再進行四捨五入。實現小數保留2位
decimal temp_r = round(amount, 2);
int temp = convert.toint32(temp_r * 100);
int numfen = (int)(temp % 10); // 分
temp = temp / 10;
int numjiao = (int)(temp % 10); // 角
temp = temp / 10;
// temp 眼下是金額的整數部分
//int parts = new int[20]; // 當中的元素是把原來金額整數部分切割為值在 0~9999 之間的數的各個部分
int numparts = 0; // 記錄把原來金額整數部分切割為了幾個部分(每部分都在 0~9999 之間)
for (int i = 0; ; i++)
int part = (int)(temp % 10000);
parts[i] = part;
numparts++;
temp = temp / 10000;}//
bool beforewaniszero = true; // 標誌「萬」以下一級是不是 0
string chinesestr = "";
for (int i = 0; i < numparts; i++)
else}
if (i != 0)
else
else
chinesestr = "萬" + chinesestr;}}
}chinesestr = partchinese + chinesestr;}
// 最後處理
if ("".equals(chinesestr)) // 整數部分為 0, 則表達為"零元"
else if (negative) // 整數部分不為 0, 而且原金額為負數
chinesestr = chinesestr + "元";
if ((numfen == 0) && (numjiao == 0))
else if (numfen == 0) // 0 分。角數不為 0
else // 「分」數不為 0
else
}return chinesestr;}
///
/// 把乙個 0~9999 之間的整數轉換為漢字的字串,假設是 0 則返回 ""
///
///
///
public static string parttranslate(int amountpart)
string units = new string ;
int temp = amountpart;
string amountstr = amountpart.tostring();
int amountstrlength = amountstr.length;
bool lastiszero = true; // 在從低位往高位迴圈時,記錄上一位數字是不是 0
string chinesestr = "";
for (int i = 0; i < amountstrlength; i++)
int digit = temp % 10;
if (digit == 0) // 取到的數字為 0
lastiszero = true;
}else // 取到的數字不是 0
temp = temp / 10;
}return chinesestr;}
public static decimal round(decimal data, int digits)
return convert.todecimal(((decimal)(intdata / i)).tostring(format));
}///
/// 把金額轉換為漢字表示
///
public static string rmbencode(decimal num)
str2 = str2.substring(15 - j); //取出相應位數的str2的值。
如:200.55,j為5所以str2=佰拾元角分
#endregion
//迴圈取出每一位須要轉換的值
for (i = 0; i < j; i++)
else
else
}#endregion
}else
else
else
else
else
}#endregion}}
#endregion
}if (i == (j - 11) || i == (j - 3))
str5 = str5 + ch1 + ch2;
if (i == j - 1 && str3 == "0")
#endregion
}if (num == 0)
return str5;
}catch}}
}
C 把金額轉換為漢字表示式
建立者 菜刀居士的部落格 建立日期 2014年09月04號 功能 money型別轉換 把金額轉換為漢字表示的數量,小數點後四捨五入保留兩位 小寫金額 人民幣大寫 public static string amounttochinese decimal amount 如果是負數,先轉換為正數 bool...
數字轉換為漢字
其實數字轉換成漢字的方式有多種多樣的,在我的同事中就有寫出更加簡單方便的 但是由於他的方法不易讀懂 水平不夠啊 因此在這裡我只說說我是如何實現這個功能 也是通過別人的指點之後思索出來的 思想簡要 1.數字對應的轉換成漢字,這其中不考慮任何情況只是簡單的轉換 如1000 轉換為 一千零百零十零 2.然...
C 漢字轉換為拼音的類
c 漢字轉換為拼音的類,含大小寫轉換 因為是靜態函式 呼叫方法很簡單 crazycoderpinyin.convert 瘋狂 如下 using system using system.collections.generic using system.text using system.text.re...