js把数值转为英文缩写
时间: 2023-07-30 10:07:21 浏览: 38
如果您是想把数字转为英文缩写,可以使用以下代码:
```javascript
function numToWord(num) {
const ones = ['', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];
const teens = ['', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen'];
const tens = ['', 'ten', 'twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety'];
const thousands = ['', 'thousand', 'million', 'billion', 'trillion'];
if (num == 0) return 'zero';
let i = 0;
let words = '';
while (num > 0) {
if (num % 1000 != 0) {
words = numToWordHelper(num % 1000) + thousands[i] + ' ' + words;
}
num = Math.floor(num / 1000);
i++;
}
return words.trim();
}
function numToWordHelper(num) {
const ones = ['', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];
const teens = ['', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen'];
const tens = ['', 'ten', 'twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety'];
let words = '';
if (num % 100 < 10) {
words = ones[num % 10];
num = Math.floor(num / 10);
} else if (num % 100 < 20) {
words = teens[num % 10];
num = Math.floor(num / 100);
} else {
words = ones[num % 10];
num = Math.floor(num / 10);
words = tens[num % 10] + ' ' + words;
num = Math.floor(num / 10);
}
if (num == 0) return words;
return ones[num] + ' hundred ' + words;
}
```
例如,`numToWord(123456)` 返回的结果是 "one hundred twenty three thousand four hundred fifty six"。
如果您是想把一个数值转为英文缩写,可以使用以下代码:
```javascript
function numberToWord(num) {
const ones = ['', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];
const teens = ['', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen'];
const tens = ['', 'ten', 'twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety'];
if (num < 10) {
return ones[num];
} else if (num < 20) {
return teens[num - 10];
} else if (num < 100) {
return tens[Math.floor(num / 10)] + (num % 10 ? ' ' + ones[num % 10] : '');
} else if (num < 1000) {
return ones[Math.floor(num / 100)] + ' hundred' + (num % 100 ? ' ' + numberToWord(num % 100) : '');
} else if (num < 1000000) {
return numberToWord(Math.floor(num / 1000)) + ' thousand' + (num % 1000 ? ' ' + numberToWord(num % 1000) : '');
} else if (num < 1000000000) {
return numberToWord(Math.floor(num / 1000000)) + ' million' + (num % 1000000 ? ' ' + numberToWord(num % 1000000) : '');
} else {
return numberToWord(Math.floor(num / 1000000000)) + ' billion' + (num % 1000000000 ? ' ' + numberToWord(num % 1000000000) : '');
}
}
```
例如,`numberToWord(123456)` 返回的结果是 "one hundred twenty-three thousand four hundred fifty-six"。