本文目录导读:

JavaScript 实现
function numberToChinese(num) {
const digits = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'];
const units = ['', '十', '百', '千'];
const bigUnits = ['', '万', '亿', '兆'];
if (num === 0) return '零';
let result = '';
let numStr = num.toString();
let chunkCount = Math.ceil(numStr.length / 4);
let chunks = [];
// 将数字按4位分块
for (let i = 0; i < chunkCount; i++) {
let start = Math.max(0, numStr.length - (i + 1) * 4);
let end = numStr.length - i * 4;
chunks.unshift(numStr.slice(start, end));
}
// 处理每个块
for (let i = 0; i < chunks.length; i++) {
let chunk = chunks[i];
let chunkNum = parseInt(chunk);
let chunkStr = '';
if (chunkNum === 0) {
continue;
}
// 处理块内的每一位
for (let j = 0; j < chunk.length; j++) {
let digit = parseInt(chunk[j]);
let pos = chunk.length - 1 - j;
if (digit === 0) {
if (j < chunk.length - 1 && parseInt(chunk[j + 1]) !== 0) {
chunkStr += '零';
}
} else {
chunkStr += digits[digit] + units[pos];
}
}
// 添加大单位
chunkStr += bigUnits[chunks.length - 1 - i];
result += chunkStr;
}
// 处理特殊情况
result = result.replace(/一十/g, '十'); // 10 -> 十
if (result.startsWith('一十')) {
result = result.slice(1); // 15 -> 十五
}
return result;
}
// 使用示例
console.log(numberToChinese(1234567)); // 一百二十三万四千五百六十七
console.log(numberToChinese(1000000)); // 一百万
console.log(numberToChinese(1001001)); // 一百万一千零一
Python 实现
def number_to_chinese(num):
"""
将数字转换为中文
"""
digits = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九']
units = ['', '十', '百', '千']
big_units = ['', '万', '亿', '兆']
if num == 0:
return '零'
if num < 0:
return '负' + number_to_chinese(-num)
result = ''
num_str = str(num)
# 分块处理
chunks = []
while len(num_str) > 4:
chunks.insert(0, num_str[-4:])
num_str = num_str[:-4]
chunks.insert(0, num_str)
chunk_count = len(chunks)
for i, chunk in enumerate(chunks):
chunk_num = int(chunk)
if chunk_num == 0:
continue
chunk_str = ''
chunk_len = len(chunk)
for j, digit_char in enumerate(chunk):
digit = int(digit_char)
pos = chunk_len - 1 - j
if digit == 0:
# 处理零
if (j < chunk_len - 1 and
int(chunk[j + 1]) != 0 and
not (chunk_str and chunk_str.endswith('零'))):
chunk_str += '零'
else:
chunk_str += digits[digit] + units[pos]
# 添加大单位
chunk_str += big_units[chunk_count - 1 - i]
result += chunk_str
# 处理块间零
if i < chunk_count - 1 and int(chunks[i + 1]) < 1000:
next_chunk = str(int(chunks[i + 1]))
if len(next_chunk) < len(str(int(chunks[i + 1]))):
if not result.endswith('零'):
result += '零'
# 处理 "一十" 到 "十" 的情况
result = result.replace('一十', '十')
if result.startswith('十'):
pass # 10 -> 十
return result
# 使用示例
print(number_to_chinese(1234567)) # 一百二十三万四千五百六十七
print(number_to_chinese(1000000)) # 一百万
print(number_to_chinese(1001001)) # 一百万一千零一
命令行 Shell 脚本 (Bash)
#!/bin/bash
# 中文数字转换函数
num_to_chinese() {
local num=$1
local digits=("零" "一" "二" "三" "四" "五" "六" "七" "八" "九")
local units=("" "十" "百" "千")
local big_units=("" "万" "亿" "兆")
if [ $num -eq 0 ]; then
echo "零"
return
fi
if [ $num -lt 0 ]; then
echo -n "负"
num=$((num * -1))
fi
local result=""
local num_str=$num
local chunk_count=0
local chunks=()
# 分块
while [ $num_str -gt 0 ]; do
chunks+=($((num_str % 10000)))
num_str=$((num_str / 10000))
chunk_count=$((chunk_count + 1))
done
# 处理每个块
for ((i = ${#chunks[@]} - 1; i >= 0; i--)); do
local chunk=${chunks[$i]}
if [ $chunk -eq 0 ]; then
continue
fi
local chunk_str=""
local chunk_num=$chunk
# 处理块内数字
for ((j = 3; j >= 0; j--)); do
local power=$((10 ** j))
local digit=$((chunk_num / power))
if [ $digit -ne 0 ]; then
if [ $j -eq 1 ] && [ $digit -eq 1 ] && [ -z "$chunk_str" ]; then
chunk_str+="十"
else
chunk_str+="${digits[$digit]}${units[$j]}"
fi
chunk_num=$((chunk_num % power))
elif [ -n "$chunk_str" ] && [[ $chunk_str != *"零"* ]]; then
if [ $chunk_num -ne 0 ]; then
chunk_str+="零"
fi
fi
done
# 添加大单位
chunk_str+="${big_units[$i]}"
result+="$chunk_str"
done
echo "$result"
}
# 使用示例
echo "1234567 -> $(num_to_chinese 1234567)"
echo "1000000 -> $(num_to_chinese 1000000)"
echo "10010 -> $(num_to_chinese 10010)"
在线工具/Excel公式
如果使用 Excel,可以用这个公式:
=IF(A1=0,"零",IF(A1<0,"负","")&SUBSTITUTE(SUBSTITUTE(
TEXT(INT(ABS(A1)),"[DBNum1]"),
"一十","十"),"一百零一十","一百一十"))
选择建议
- JavaScript:适合网页应用
- Python:适合数据处理和自动化脚本
- Bash:适合Linux命令行环境
- Excel:适合表格数据处理
您可以根据自己的需求选择合适的方法,如果需要处理更大的数字或更复杂的格式(如金额大写),可以告诉我,我可以提供相应的优化版本。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播