<!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 &gt; 0) {
			var section = integer % 10000;
			if (i &gt; 0) {
				cn = unit[i] + cn;
			}
			var j = 0;
			var zero = false;
			while (section &gt; 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 &gt; 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 &gt; 0) {
				var digit = decimal % 10;
				if (digit &gt; 0) {
					var numChar = str.charAt(digit);
					var unitChar = decimalUnit[k];
					cn += numChar + unitChar;
				}
				decimal = Math.floor(decimal / 10);
				k++;
			}
		}
		return cn;
	}
&lt;/script&gt;
</code></pre>
</body>
</html>
人民币数字转大写 - 在线转换工具

原文地址: https://www.cveoy.top/t/topic/njFu 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录