繁体   English   中英

将数字转换为字母

[英]Convert a number to an alphabet letter

我想要的是一个 function,它接受输入一个数字并返回一个字母 (az)。

这是我的代码(我从这个问题中得到它):

 function numberToLetter(value) { const roundedPositiveValue = Math.round(Math.abs(value)) return (roundedPositiveValue + 9).toString(36) // return ((roundedPositiveValue % 26) + 9).toString(36) } function print(value) { document.write(`${value} → ${numberToLetter(value)}<br>`) } [-10, -2, 0, 2.5, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 200].forEach(v => print(v))

它有效,但并非在所有情况下都有效。 例如,它不适用于大于 26 的值,因此我尝试使用模运算符,但在这种情况下(注释行),它不适用于值 26。我该如何解决?

您可以减一,以获得基于零的值,应用模数并加一以获得从 1 到 26 的值。

 function numberToLetter(value) { const adjusted = ((Math.round(Math.abs(value)) - 1) % 26) + 1; return (adjusted + 9).toString(36); } function print(value) { document.write(`${value} → ${numberToLetter(value)}<br>`) } [-10, -2, 0, 2.5, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 200].forEach(v => print(v))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM