将数字转换成单词C#

将数字转换成单词C#

有人能给我一个入门代码,我可以用数字转换成文字吗?

将数字转换为单词(从-1000到+1000)例如:1000->1000


慕斯709654
浏览 527回答 3
3回答

largeQ

public&nbsp;static&nbsp;string&nbsp;NumberToWords(int&nbsp;number){ &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(number&nbsp;==&nbsp;0) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;"zero"; &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(number&nbsp;<&nbsp;0) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;"minus&nbsp;"&nbsp;+&nbsp;NumberToWords(Math.Abs(number)); &nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;words&nbsp;=&nbsp;""; &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((number&nbsp;/&nbsp;1000000)&nbsp;>&nbsp;0) &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words&nbsp;+=&nbsp;NumberToWords(number&nbsp;/&nbsp;1000000)&nbsp;+&nbsp;"&nbsp;million&nbsp;"; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;number&nbsp;%=&nbsp;1000000; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((number&nbsp;/&nbsp;1000)&nbsp;>&nbsp;0) &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words&nbsp;+=&nbsp;NumberToWords(number&nbsp;/&nbsp;1000)&nbsp;+&nbsp;"&nbsp;thousand&nbsp;"; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;number&nbsp;%=&nbsp;1000; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((number&nbsp;/&nbsp;100)&nbsp;>&nbsp;0) &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words&nbsp;+=&nbsp;NumberToWords(number&nbsp;/&nbsp;100)&nbsp;+&nbsp;"&nbsp;hundred&nbsp;"; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;number&nbsp;%=&nbsp;100; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(number&nbsp;>&nbsp;0) &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(words&nbsp;!=&nbsp;"") &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words&nbsp;+=&nbsp;"and&nbsp;"; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;unitsMap&nbsp;=&nbsp;new[]&nbsp;{&nbsp;"zero",&nbsp;"one",&nbsp;"two",&nbsp;"three",&nbsp;"four",&nbsp;"five",&nbsp;"six",&nbsp;"seven",&nbsp;"eight",&nbsp;"nine",&nbsp;"ten",&nbsp;"eleven",&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"twelve",&nbsp;"thirteen",&nbsp;"fourteen",&nbsp;"fifteen",&nbsp;"sixteen",&nbsp;"seventeen",&nbsp;"eighteen",&nbsp;"nineteen"&nbsp;}; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;tensMap&nbsp;=&nbsp;new[]&nbsp;{&nbsp;"zero",&nbsp;"ten",&nbsp;"twenty",&nbsp;"thirty",&nbsp;"forty",&nbsp;"fifty",&nbsp;"sixty",&nbsp;"seventy",&nbsp;"eighty",&nbsp;"ninety"&nbsp;}; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(number&nbsp;<&nbsp;20) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words&nbsp;+=&nbsp;unitsMap[number]; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words&nbsp;+=&nbsp;tensMap[number&nbsp;/&nbsp;10]; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((number&nbsp;%&nbsp;10)&nbsp;>&nbsp;0) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words&nbsp;+=&nbsp;"-"&nbsp;+&nbsp;unitsMap[number&nbsp;%&nbsp;10]; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;words;}

达令说

当我不得不解决这个问题时,我创建了一个硬编码的数据字典来映射数字和它们相关的单词。例如,以下内容可能表示字典中的几个条目:{1,&nbsp;"one"}{2,&nbsp;"two"}{30,&nbsp;"thirty"}你真的只需要担心10^0(1,2,3等)中的映射数。和10^1(10,20,30)位置,因为一旦你到了100,你只需要知道什么时候使用像百,千,百万等词结合你的地图。例如,当你有一个像3,240,123这样的数字时,你会得到:三百万二百四十千一百二十三.在构建地图之后,您需要对数字中的每一个数字进行计算,并找出相应的命名方法。

慕的地10843

虽然很老了,但是有人引用了这个答案.数组应该定义为static否则,它们将在每个调用上被实例化,这些调用可能是由于递归而导致的单个转换的多次调用。
打开App,查看更多内容
随时随地看视频慕课网APP