將天文數字轉換成中文大寫

2022-02-23 04:57:01 字數 2333 閱讀 9562

思路非常簡單,且沒有任何位數限制! 

例如: 401,0103,1013 

讀作: 肆佰零壹[億]零壹佰零叄[萬]壹仟零壹拾叁 

咱們先按每四位一組 從左到右,高位到低位分別"大聲朗讀"一下: 

"肆佰零壹" 單位是: "[億]" 

"壹佰零叄" 單位是: "[萬]" 

"壹仟零壹拾叁" 單位是 "" (相當於沒有單位) 

很容易發現,每四位: 只有 千位,百位,十位,個位 這四種情況! 

我們把 [萬],[億] 當作單位就可以了! 

這就是規律了!簡單吧! 

依據該思路,只用區區不到 50 行**就可以搞定: 

只要你能夠提供足夠多的"單位" 

任何天文數字都可以正確轉換! 

c# code

// 得到一組四位數 最高位組有可能不足四位

string s = x.substring(p, l);

int l = s.length;

// 內層迴圈在該組中的每一位數上迴圈 從左到右 高位到低位

for (int j = 0; j < l; j++)

} else

s += digits[l - j - 1];

} }

p += l;

// 每組最後加上乙個單位: [萬],[億] 等

if (i < k) //不是最高位的一組

} else

} return s;

} // 測試程式

private static void main()

; //位 陣列

string digits = new string ;

//單位 陣列

string units = new string ;

console.writeline(convertnumbertochinese("1100000013", nums, digits, units));

console.writeline(convertnumbertochinese("2100000000", nums, digits, units));

console.writeline(convertnumbertochinese("1000000000", nums, digits, units));

console.writeline(convertnumbertochinese("40000000013", nums, digits, units));

console.writeline(convertnumbertochinese("40000000001", nums, digits, units));

console.writeline(convertnumbertochinese("400000010000", nums, digits, units));

console.writeline(convertnumbertochinese("40101031013", nums, digits, units));

console.writeline(convertnumbertochinese("40101031113", nums, digits, units));

console.writeline(convertnumbertochinese("101140101031013", nums, digits, units));

console.writeline(convertnumbertochinese("100000001000013", nums, digits, units));

console.writeline(convertnumbertochinese("100000001000113", nums, digits, units));

console.writeline(convertnumbertochinese("100011003", nums, digits, units));

console.writeline(convertnumbertochinese("10010103", nums, digits, units));

console.writeline(convertnumbertochinese("10110013", nums, digits, units));

console.writeline(convertnumbertochinese("130000", nums, digits, units));

console.readline();

} }

}t-sql:

數字轉換成中文大寫

轉換數字金額主函式 包括小數 數字字串 轉換成中文大寫後的字串或者出錯資訊提示字串 public string convertsum string str 判斷是否是正數字字串 判斷字串 如果是數字,返回true,否則返回false public bool ispositvedecimal stri...

數字轉換成中文大寫

實現思路 1.輸入的是一串特定的字串,格式 1111.11,2.拿到內容之後,將內容以小數點分成兩部分 3.定義好長度對應的單位,比如 兩位數是拾,定義好數值對應的中文大寫字元,4.根據字元的長度迴圈轉換中文大寫以及新增對應的單位 原始碼如下 public class convertochinese...

js將數字轉換成中文

var change strrev function return ary.join 倒轉字串。pri ary function 關於0的處理與判斷。if ary i 0 如果不被4整除,那麼都執行這段判斷 如果它的下一位數字 針對當前字串來說是上乙個字元,因為之前執行了反轉 也是0,那麼跳過,否則...