人民币数字转大写 - 在线转换工具
<!DOCTYPE html>
<html>
<head>
<meta charset='UTF-8'>
<title>人民币数字大小写转换</title>
<style>
input[type='text'] {
width: 300px;
height: 30px;
font-size: 18px;
padding: 5px;
margin-bottom: 10px;
}
input[type='button'] {
width: 100px;
height: 30px;
font-size: 16px;
background-color: #0077CC;
color: #FFF;
border: none;
border-radius: 5px;
cursor: pointer;
}
table {
border-collapse: collapse;
margin-top: 10px;
font-size: 18px;
text-align: center;
width: 100%;
}
th, td {
border: 1px solid #AAA;
padding: 10px;
}
</style>
</head>
<body>
<h1>人民币数字大小写转换</h1>
<p>请输入人民币金额:</p>
<input type='text' id='numInput'>
<input type='button' value='转换' onclick='convert()'>
<table>
<tr>
<th>数字金额</th>
<th>大写金额</th>
</tr>
<tr>
<td id='numOutput'></td>
<td id='cnOutput'></td>
</tr>
</table>
<script>
function convert() {
var numInput = document.getElementById('numInput').value.trim();
if (numInput == '') {
alert('请输入数字金额!');
return;
}
var num = parseFloat(numInput);
if (isNaN(num)) {
alert('请输入有效的数字金额!');
return;
}
if (num < 0 || num > 999999999.99) {
alert('请输入0-999999999.99之间的数字金额!');
return;
}
var cn = convertToCN(num);
document.getElementById('numOutput').innerHTML = num.toFixed(2);
document.getElementById('cnOutput').innerHTML = cn;
}
<pre><code> function convertToCN(num) {
var cn = '';
var str = '零壹贰叁肆伍陆柒捌玖';
var unit = ['元', '万', '亿', '万亿'];
var smallUnit = ['拾', '佰', '仟'];
var decimalUnit = ['角', '分'];
var integer = Math.floor(num);
var decimal = Math.round(num * 100) % 100;
var i = 0;
while (integer > 0) {
var section = integer % 10000;
if (i > 0) {
cn = unit[i] + cn;
}
var j = 0;
var zero = false;
while (section > 0) {
var digit = section % 10;
if (digit == 0) {
if (zero) {
zero = false;
cn = str.charAt(digit) + cn;
}
} else {
zero = true;
var numChar = str.charAt(digit);
var unitChar = '';
if (j > 0) {
unitChar = smallUnit[j - 1];
}
cn = numChar + unitChar + cn;
}
section = Math.floor(section / 10);
j++;
}
if (zero) {
cn = '零' + cn;
}
integer = Math.floor(integer / 10000);
i++;
}
if (decimal == 0) {
cn += '整';
} else {
var k = 0;
while (decimal > 0) {
var digit = decimal % 10;
if (digit > 0) {
var numChar = str.charAt(digit);
var unitChar = decimalUnit[k];
cn += numChar + unitChar;
}
decimal = Math.floor(decimal / 10);
k++;
}
}
return cn;
}
</script>
</code></pre>
</body>
</html>
原文地址: https://www.cveoy.top/t/topic/njFu 著作权归作者所有。请勿转载和采集!