如何把数字转换成英语怎么说

 我来答
顺心还婉顺的君子兰5882
2022-10-02 · TA获得超过5476个赞
知道小有建树答主
回答量:273
采纳率:0%
帮助的人:63.8万
展开全部
1. 如何将数字转换成英文表示﹖﹖﹖我想将数字转换成英文表示﹐如188
如果转英文的话可以用spell_amountsample code:CALL FUNCTION 'SPELL_AMOUNT' EXPORTING AMOUNT = L_PAMOUNT "L_AMOUNT_AFTER_TAX CURRENCY= L_CURRENCY FILLER = SPACE LANGUAGE= SY-LANGU IMPORTING IN_WORDS= T_SPELL EXCEPTIONS NOT_FOUND = 1 TOO_LARGE = 2 OTHERS = 3.但转中文的话会有点问题,想问一下如果要转成中文的话有没有其他什么好的function?。
2. 数字怎么翻译成英文
数字翻译成英文的要点

含有小数的万位数字或亿位数字:因为英语中没有 “万”和“亿”的数字概念,所以相关的数字翻译必须要进行转换, “万”要换成“ ten thousand” , “亿”要换成“ one hundred million”。

含有整数和小数的数字:英语数字读基数,小数点后的 “零”读英语字母 “o”的发音或者“zero/naught”。如105.65要读为one hundred and five point six five。

数字“117599.16”翻译成英语是:

one hundred and seventeen thousand, five hundred and ninty nine point sixteen.

1、也可按数字从左到右翻译:

one one seven five nine nine (point小数点) one six.

2、还有其他不明的翻译:

one hundred seventeen thousand five hundred and nighty nine point one six.

3、one hundred seventeen thousand five hundred niy-nine and sixteen.

4、double one seven double nine dot one six.

5、one hundred and seventeen thousand five hundred and niy-nine point sixteen.

扩展资料

数字的两种基本翻译方法 

1.保留数字直译——要求数字的准确度和清晰度 

(1)年代的表达 

Eg: 1980s  二十世纪八十年代 

(2)长数字的表达 

Eg:The Chinese News Agency says China's population has grown to 1,031,882,511 persons. (数字读作one billion thirty-one million eight hundred eighty-two thousand five hundred and eleven),数字翻译为10亿3188万2511。 

2. 舍弃数字意译——对数字进行模糊化处理 

Eg: I have one hundred and one things to do this morning. 今天早上我有很多事情要做。 

这里的one hundred and one就做了模糊处理,舍弃了数字意译为“很多”。 

Eg: Her face lost color within twenty seconds. 她的脸色一下子就变了。 

这里的within twenty seconds只是表示时间的短暂,并没有实际的数字意义,因此,只要译为“很快”,“一下子”等表示时间短暂的汉语意义就可以了。
3. 如何把数字转换英文单词,类似手机数字键盘
你这个是考算法的啊!我想到了几点:1:你要把words.txt单词库中的单词逐个分离出来。

这个不难,只要单词库中的单词之间有固定的界限(比如用空格来区分,或是逗号什么的)都可以用java.util.StringTokenizer类来分离。2:将分离出来的单词存放在ArrayList list中3:建立英文字母到数字的映射关系:public int index(chat c)根据输入的char返回对应的数字。

不如D/E/F返回3,需要注意的是,大D和小D都返回3。这个不难吧。

4:建立一个单词到数字的映射。public byte[] NOEncoding(String s)用到String类的charAt(int index)方法,逐个提取char,再用index()方法对应的数字来来确定,并将结果存放在byte数组中5:遍历list链表,利用NOEncoding()方法,建立每个单词到数字的映射,就形成了新的单词库了。

6:最后一步啦,将输入的数字和对应的新的单词库做比较就行了。你的目的达到了。

附:java.util.StringTokenizer ublic class StringTokenizerextends Objectimplements Enumerationstring tokenizer 类允许应用程序将字符串分解为标记。tokenization 方法比 StreamTokenizer 类所使用的方法更简单。

StringTokenizer 方法不区分标识符、数和带引号的字符串,它们也不识别并跳过注释。 可以在创建时指定,也可以根据每个标记来指定分隔符(分隔标记的字符)集。

StringTokenizer 的实例有两种行为方式,这取决于它在创建时使用的 returnDelims 标志的值是 true 还是 false: 如果标志为 false,则分隔符字符用来分隔标记。标记是连续字符(不是分隔符)的最大序列。

如果标志为 true,则认为那些分隔符字符本身即为标记。因此标记要么是一个分隔符字符,要么是那些连续字符(不是分隔符)的最大序列。

StringTokenizer 对象在内部维护字符串中要被标记的当前位置。某些操作将此当前位置移至已处理的字符后。

通过截取字符串的一个子串来返回标记,该字符串用于创建 StringTokenizer 对象。 下面是一个使用 tokenizer 的实例。

代码如下: StringTokenizer st = new StringTokenizer("this is a test"); while (st.hasMoreTokens()) { System.out.println(st.nextToken()); } 输出以下字符串: this is a test public StringTokenizer(String str, String delim)为指定字符串构造一个 string tokenizer。delim 参数中的字符都是分隔标记的分隔符。

分隔符字符本身不作为标记。 注意,如果 delim 为 null,则此构造方法不抛出异常。

但是,尝试对得到的 StringTokenizer 调用其他方法则可能抛出 NullPointerException。 参数:str - 要解析的字符串。

delim - 分隔符。 抛出: NullPointerException - 如果 str 为 null。

附2:我觉得这种思路较好一些:1>如果建立数字到英文字母的映射,那么一个数字将返回多个字母,这个不是很好吧,不如2--abc。2>建立数字到单词的映射,算法上不太好实现。

比如224,就是abc abc ghi的全排雷,就要3*3*3这么多种,要是中文字还可以接受做多也就4*4*4*4*4这么多。但是英文不同了。

3>你单词库中的单词毕竟是有限的,就拿中文汉字来说,最多也1W左右。英文单词也不过如此。

所以这个不是大问题。综上,我最终选择了这个算法来实现。

代码之际写吧。应该不存在大问题了。

(回答很辛苦啊,,我还差6个最佳答案了!)。
4. 如何用C语言将输入的数字转化成英语
对照字母的ASCII码进行输入数字,然后再输出字母。

和你的相比,不知是否复杂。 此程序的计算范围:0<=num<1000。

如果还想要计算更大的数,可以在最后面加判断语句,方法类似。 #include void main() { char *Eng1[20]={"zero","one","two","three","four","five","six","seven", "eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen", "sixteen","seventeen","eighteen","nieen"}; char *Eng2[8]={"twenty","thirty","fourty","fifty","sixty","seventy","eighty","niy"}; int num; printf("请输入数字: "); scanf("%d",&num); printf("对应的英文为: "); if(num>=0&&num<=19) printf("%s\n",Eng1[num]); else if(num<100) { int s,y; s=num/10; y=num%10; printf("%s %s\n",Eng2[s-2],Eng1[y]); } else if(num<1000) { int b,s,y; b=num/100; y=num%100; if(y>9) { s=(num%100)/10; y=(num%100)%10; if(y==0) printf("%s hundred and %s\n",Eng1[b],Eng2[s-2]); else printf("%s hundred and %s %s\n",Eng1[b],Eng2[s-2],Eng1[y]); } else printf("%s hundred and %s\n",Eng1[b],Eng1[y]); } }。
5. java如何将数字转换为英文
Java 数字转成英文 英文数词,按3位3位区分 Hundred: 100 Thousand:1,000 Million: 1,000,000 Billion: 1,000,000,000 Trillion: 1,000,000,000,000 Quintillion: 1,000,000,000,000,000,000 Sextillion: 1,000,000,000,000,000,000,000 Nonillion: 1,000,000,000,000,000,000,000,000,000,000 Centillion: 1 followed by 303 zeros 所以把数字字符串按3位分割,分别解析 public class NumUtil { public static final String[] enNum = { 基本数词表 "zero", "one", "tow", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nieen", "twenty", "", "", "", "", "", "", "", "", "", "thirty", "", "", "", "", "", "", "", "", "", "fourty", "", "", "", "", "", "", "", "", "", "fifty", "", "", "", "", "", "", "", "", "", "sixty", "", "", "", "", "", "", "", "", "", "seventy", "", "", "", "", "", "", "", "", "", "eighty", "", "", "", "", "", "", "", "", "", "niy" }; public static final String[] enUnit = { "hundred", "thousand", "million", "billion", "trillion", "quintillion" }; 单位表 public static void main(String[] args) { System.out.println( *** yze(1)); 测试数据 System.out.println( *** yze(21)); System.out.println( *** yze(105)); System.out.println( *** yze(3250)); System.out.println( *** yze(47826)); System.out.println( *** yze(56945781)); } public static String *** yze(long num) { long型参数, return *** yze(String.valueOf(num)); 因为long型有极限,所以以字符串参数方法为主 } public static String *** yze(String num) { 数字字符串参数 判断字符串是否为数字 if (!num.matches("\\d+")) { return String.format("%s is not number", num); } num = num.replaceAll("^[0]*([1-9]*)", "$1"); 把字符串前面的0去掉 if (num.length() == 0) { 如果长度为0,则原串都是0 return enNum[0]; } else if (num.length() > 9) { 如果大于9,即大于999999999,题目限制条件 return "too big"; } 按3位分割分组 int count = (num.length() % 3 == 0) ? num.length() / 3 : num.length() / 3 + 1; if (count > enUnit.length) { return "too big"; } 判断组单位是否超过, 可以根据需求适当追加enUnit String[] group = new String[count]; for (int i = num.length(), j = group.length - 1; i > 0; i -= 3) { group[j--] = num.substring(Math.max(i - 3, 0), i); } StringBuilder buf = new StringBuilder(); 结果保存 for (int i = 0; i < count; i++) { 遍历分割的组 int v = Integer.valueOf(group[i]); if (v >= 100) { 因为按3位分割,所以这里不会有超过999的数 buf.append(enNum[v / 100]).append(" ").append(enUnit[0]) .append(" "); v = v % 100; 获取百位,并得到百位以后的数 if (v != 0) { buf.append("and "); } 如果百位后的数不为0,则追加and } if (v != 0) { 前提是v不为0才作解析 if (v < 20 || v % 10 == 0) { 如果小于20或10的整数倍,直接取基本数词表的单词 buf.append(enNum[v]).append(" "); } else { 否则取10位数词,再取个位数词 buf.append(enNum[v - v % 10]).append(" "); buf.append(enNum[v % 10]).append(" "); } if (i != count - 1) { 百位以上的组追加相应的单位 buf.append(enUnit[count - 1 - i]).append(" "); } } } return buf.toString().trim(); 返回值 } }。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式