static string[] ChineseNumbers = { "零", "壹", "貳", "叁", "肆", "伍", "陸", "柒", "捌", "玖" };
static string[] ChineseUnits = { "", "拾", "佰", "仟" };
static string[] ChineseGroupUnits = { "", "萬(wàn)", "億", "萬(wàn)億" };
public static void Main1()
{
// 示例金額
decimal amount = 123456089.12345m;
string chineseAmount = ConvertToChineseAmount(amount);
Console.WriteLine(chineseAmount);
}
static string ConvertToChineseAmount(decimal amount)
{
if (amount == 0)
{
return "零元整";
}
string result = "";
// 處理整數(shù)部分
long integerPart = (long)Math.Floor(Math.Abs(amount));
result += ConvertIntegerPartToChinese(integerPart);
// 處理小數(shù)部分
decimal decimalPart = Math.Abs(amount) - integerPart;
result += ConvertDecimalPartToChinese(decimalPart);
return result;
}
static string ConvertIntegerPartToChinese(long integerPart)
{
string result = "";
int groupIndex = 0;
while (integerPart > 0)
{
int group = (int)(integerPart % 10000);
if (group > 0)
{
result = ConvertGroupToChinese(group) + ChineseGroupUnits[groupIndex] + result;
}
integerPart /= 10000;
groupIndex++;
}
return result + "元";
}
static string ConvertGroupToChinese(int group)
{
string result = "";
int unitIndex = 0;
bool lastNonZero = false;
while (group > 0)
{
int digit = group % 10;
if (digit > 0)
{
result = ChineseNumbers[digit] + ChineseUnits[unitIndex] + result;
lastNonZero = true;
}
else
{
if (lastNonZero)
{
result = ChineseNumbers[digit] + result;
lastNonZero = false;
}
}
group /= 10;
unitIndex++;
}
return result;
}
static string ConvertDecimalPartToChinese(decimal decimalPart)
{
if (decimalPart == 0)
{
return "整";
}
string result = "";
for (int i = 1; i <= 5; i++)
{
int digit = (int)(decimalPart * 10);
if (digit > 0)
{
result += ChineseNumbers[digit] + GetDecimalUnit(i);
}
decimalPart = (decimalPart * 10) - digit;
}
return result;
}
static string GetDecimalUnit(int position)
{
switch (position)
{
case 1: return "角";
case 2: return "分";
case 3: return "厘";
case 4: return "毫";
case 5: return "絲";
default: return "";
}
}
C# 將數(shù)值金額轉(zhuǎn)換為人民幣大寫(支持多個(gè)小數(shù)點(diǎn))
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)寻咒,“玉大人哮翘,你說(shuō)我怎么就攤上這事∽猩” “怎么了忍坷?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)熔脂。 經(jīng)常有香客問(wèn)我佩研,道長(zhǎng),這世上最難降的妖魔是什么霞揉? 我笑而不...
- 正文 為了忘掉前任旬薯,我火速辦了婚禮,結(jié)果婚禮上适秩,老公的妹妹穿的比我還像新娘绊序。我一直安慰自己,他們只是感情好秽荞,可當(dāng)我...
- 文/花漫 我一把揭開(kāi)白布骤公。 她就那樣靜靜地躺著,像睡著了一般扬跋。 火紅的嫁衣襯著肌膚如雪阶捆。 梳的紋絲不亂的頭發(fā)上,一...
- 那天钦听,我揣著相機(jī)與錄音洒试,去河邊找鬼。 笑死朴上,一個(gè)胖子當(dāng)著我的面吹牛垒棋,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播痪宰,決...
- 文/蒼蘭香墨 我猛地睜開(kāi)眼叼架,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼畔裕!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起碉碉,我...
- 序言:老撾萬(wàn)榮一對(duì)情侶失蹤柴钻,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后垢粮,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體贴届,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年蜡吧,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了毫蚓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
- 正文 年R本政府宣布,位于F島的核電站返咱,受9級(jí)特大地震影響钥庇,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜咖摹,卻給世界環(huán)境...
- 文/蒙蒙 一评姨、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧萤晴,春花似錦吐句、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至屯断,卻和暖如春文虏,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背裹纳。 一陣腳步聲響...
- 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像阻星,于是被迫代替她去往敵國(guó)和親朋鞍。 傳聞我的和親對(duì)象是個(gè)殘疾皇子已添,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- functionconvertCurrency(money) { //漢字的數(shù)字 varcnNums =newAr...
- 在金融、電商等領(lǐng)域滥酥,我們經(jīng)常需要將數(shù)字金額轉(zhuǎn)換為大寫的人民幣漢字表示更舞,例如將1234.56轉(zhuǎn)換為"壹仟貳佰叁拾肆元...