EXCEL 中如何将数字转换成英文

EXCEL 中如何将数字转换成英文
EXCEL 中如何将数字转换成英文

一、网上下载的代码

1.创建一个模块:

在SHEET上,右键-》查看代码。选中“模块”-》插入模块。

2.写代码:

Option Explicit

Dim StrNO(19) As String

Dim Unit(8) As String

Dim StrTens(9) As String

Public Function NumberToString(Number As Double) As String

Dim Str As String, BeforePoint As String, AfterPoint As String, tmpStr As String Dim Point As Integer

Dim nBit As Integer

Dim CurString As String

Dim nNumLen As Integer

Dim T As String

Call Init

Str = CStr(Round(Number, 2))

' Str = Number

If InStr(1, Str, ".") = 0 Then

BeforePoint = Str

AfterPoint = ""

Else

BeforePoint = Left(Str, InStr(1, Str, ".") - 1)

T = Right(Str, Len(Str) - InStr(1, Str, "."))

If Len(T) < 2 Then AfterPoint = Val(T) * 10

If Len(T) = 2 Then AfterPoint = Val(T)

If Len(T) > 2 Then AfterPoint = Val(Left(T, 2))

End If

If Len(BeforePoint) > 12 Then

NumberToString = "Too Big."

Exit Function

End If

Str = ""

Do While Len(BeforePoint) > 0

nNumLen = Len(BeforePoint)

If nNumLen Mod 3 = 0 Then

CurString = Left(BeforePoint, 3)

BeforePoint = Right(BeforePoint, nNumLen - 3)

Else

CurString = Left(BeforePoint, (nNumLen Mod 3))

BeforePoint = Right(BeforePoint, nNumLen - (nNumLen Mod 3))

End If

nBit = Len(BeforePoint) / 3

tmpStr = DecodeHundred(CurString)

If (BeforePoint = String(Len(BeforePoint), "0") Or nBit = 0) And Len(CurString) = 3 Then

If CInt(Left(CurString, 1)) <> 0 And CInt(Right(CurString, 2)) <> 0 Then

'tmpStr = Left(tmpStr, InStr(1, tmpStr, Unit(4)) + Len(Unit(4))) & Unit(8) & " " & Right(tmpStr, Len(tmpStr) - (InStr(1, tmpStr, Unit(4)) + Len(Unit(4))))

Else 'If CInt(Left(CurString, 1)) <> 0 And CInt(Right(CurString, 2)) = 0 Then

'tmpStr = Unit(8) & " " & tmpStr

End If

End If

If nBit = 0 Then

Str = Trim(Str & " " & tmpStr)

Else

Str = Trim(Str & " " & tmpStr & " " & Unit(nBit))

End If

If Left(Str, 3) = Unit(8) Then Str = Trim(Right(Str, Len(Str) - 3))

If BeforePoint = String(Len(BeforePoint), "0") Then Exit Do

'Debug.Print Str

Loop

BeforePoint = Str

If Len(AfterPoint) > 0 Then

AfterPoint =Unit(6) & " " & DecodeHundred(AfterPoint) & " " & Unit(5)

Else

AfterPoint = Unit(5)

End If

NumberToString = BeforePoint & " " & AfterPoint

End Function

Private Function DecodeHundred(HundredString As String) As String

Dim tmp As Integer

If Len(HundredString) > 0 And Len(HundredString) <= 3 Then

Select Case Len(HundredString)

Case 1

tmp = CInt(HundredString)

If tmp <> 0 Then DecodeHundred = StrNO(tmp)

Case 2

tmp = CInt(HundredString)

If tmp <> 0 Then

If (tmp < 20) Then

DecodeHundred = StrNO(tmp)

Else

If CInt(Right(HundredString, 1)) = 0 Then

DecodeHundred = StrTens(Int(tmp / 10))

Else

DecodeHundred = StrTens(Int(tmp / 10)) & "-" & StrNO(CInt(Right(HundredString, 1))) End If

End If

End If

Case 3

If CInt(Left(HundredString, 1)) <> 0 Then

DecodeHundred = StrNO(CInt(Left(HundredString, 1))) & " " & Unit(4) & " " & DecodeHundred(Right(HundredString, 2))

Else

DecodeHundred = DecodeHundred(Right(HundredString, 2))

End If

Case Else

End Select

End If

End Function

Private Sub Init()

If StrNO(1) <> "One" Then

StrNO(1) = "One"

StrNO(2) = "Two"

StrNO(3) = "Three"

StrNO(4) = "Four"

StrNO(5) = "Five"

StrNO(6) = "Six"

StrNO(7) = "Seven"

StrNO(8) = "Eight"

StrNO(9) = "Nine"

StrNO(10) = "Ten"

StrNO(11) = "Eleven"

StrNO(12) = "Twelve"

StrNO(13) = "Thirteen"

StrNO(14) = "Fourteen"

StrNO(15) = "Fifteen"

StrNO(16) = "Sixteen"

StrNO(17) = "Seventeen"

StrNO(18) = "Eighteen"

StrNO(19) = "Nineteen"

StrTens(1) = "Ten"

StrTens(2) = "Twenty"

StrTens(3) = "Thirty"

StrTens(4) = "Forty"

StrTens(5) = "Fifty"

StrTens(6) = "Sixty"

StrTens(7) = "Seventy"

StrTens(8) = "Eighty"

StrTens(9) = "Ninety"

Unit(1) = "Thousand" '材 熌

Unit(2) = "Million" '材 熌

Unit(3) = "Billion" '材 熌

Unit(4) = "Hundred"

Unit(5) = "Only"

Unit(6) = "Point"

Unit(7) = "Cents"

Unit(8) = "And"

End If

End Sub

保存此代码到本地

3.模块中已经定义了函数名称:NumberToString 直接当作EXCEL本地函数使用,例如在A1=7,在B1中输入=NumberToString(A1)就可以拉!很简单的吧?

二、以川改过的代码:

'功能模块:数字转英文(货币)大写

'Public Function NumberToString(Number As Double) As String

'调用形式:debug.print NumberToString(1234.32)

'说明:最大支持12位数字,小数点后精确两位

'程序:杨鑫光(Volitation)

Dim StrNO(19) As String

Dim Unit(8) As String

Dim StrTens(9) As String

Public Function NumberToString(Number As Double) As String

Dim Str As String, BeforePoint As String, AfterPoint As String, tmpStr As String

Dim Point As Integer

Dim nBit As Integer

Dim CurString As String

Call Init

'//开始处理

Str = CStr(Round(Number, 2))

' Str = Number

If InStr(1, Str, ".") = 0 Then

BeforePoint = Str

AfterPoint = ""

Else

BeforePoint = Left(Str, InStr(1, Str, ".") - 1)

AfterPoint = Right(Str, Len(Str) - InStr(1, Str, "."))

End If

If Len(BeforePoint) > 12 Then

NumberToString = "Too Big."

Exit Function

End If

Str = ""

Do While Len(BeforePoint) > 0

nNumLen = Len(BeforePoint)

If nNumLen Mod 3 = 0 Then

CurString = Left(BeforePoint, 3)

BeforePoint = Right(BeforePoint, nNumLen - 3)

Else

CurString = Left(BeforePoint, (nNumLen Mod 3))

BeforePoint = Right(BeforePoint, nNumLen - (nNumLen Mod 3))

End If

nBit = Len(BeforePoint) / 3

tmpStr = DecodeHundred(CurString)

If (BeforePoint = String(Len(BeforePoint), "0") Or nBit = 0) And Len(CurString) = 3 Then

If CInt(Left(CurString, 1)) <> 0 And CInt(Right(CurString, 2)) <> 0 Then

tmpStr = Left(tmpStr, InStr(1, tmpStr, Unit(4)) + Len(Unit(4))) & Unit(8) & " " & Right(tmpStr, Len(tmpStr) - (InStr(1, tmpStr, Unit(4)) + Len(Unit(4))))

Else 'If CInt(Left(CurString, 1)) <> 0 And CInt(Right(CurString, 2)) = 0 Then

tmpStr = Unit(8) & " " & tmpStr

End If

End If

If nBit = 0 Then

Str = Trim(Str & " " & tmpStr)

Else

Str = Trim(Str & " " & tmpStr & " " & Unit(nBit))

End If

If Left(Str, 3) = Unit(8) Then Str = Trim(Right(Str, Len(Str) - 3))

If BeforePoint = String(Len(BeforePoint), "0") Then Exit Do

'Debug.Print Str

Loop

BeforePoint = Str

NumberToString = BeforePoint & " "

End Function

Private Function DecodeHundred(HundredString As String) As String

Dim tmp As Integer

If Len(HundredString) > 0 And Len(HundredString) <= 3 Then

Select Case Len(HundredString)

Case 1

tmp = CInt(HundredString)

If tmp <> 0 Then DecodeHundred = StrNO(tmp)

Case 2

tmp = CInt(HundredString)

If tmp <> 0 Then

If (tmp < 20) Then

DecodeHundred = StrNO(tmp)

Else

If CInt(Right(HundredString, 1)) = 0 Then

DecodeHundred = StrTens(Int(tmp / 10))

Else

DecodeHundred = StrTens(Int(tmp / 10)) & "-" & StrNO(CInt(Right(HundredString, 1)))

End If

End If

End If

Case 3

If CInt(Left(HundredString, 1)) <> 0 Then

DecodeHundred = StrNO(CInt(Left(HundredString, 1))) & " " & Unit(4) & " " & DecodeHundred(Right(HundredString, 2))

Else

DecodeHundred = DecodeHundred(Right(HundredString, 2))

End If

Case Else

End Select

End If

End Function

Private Sub Init()

If StrNO(1) <> "One" Then

StrNO(1) = "One"

StrNO(2) = "Two"

StrNO(3) = "Three"

StrNO(4) = "Four"

StrNO(5) = "Five"

StrNO(6) = "Six"

StrNO(7) = "Seven"

StrNO(8) = "Eight"

StrNO(9) = "Nine"

StrNO(10) = "Ten"

StrNO(11) = "Eleven"

StrNO(12) = "Twelve"

StrNO(13) = "Thirteen"

StrNO(14) = "Fourteen"

StrNO(15) = "Fifteen"

StrNO(16) = "Sixteen"

StrNO(17) = "Seventeen"

StrNO(18) = "Eighteen"

StrNO(19) = "Nineteen"

StrTens(1) = "Ten"

StrTens(2) = "Twenty"

StrTens(3) = "Thirty"

StrTens(4) = "Forty"

StrTens(5) = "Fifty"

StrTens(6) = "Sixty"

StrTens(7) = "Seventy"

StrTens(8) = "Eighty"

StrTens(9) = "Ninety"

Unit(1) = "Thousand" '第一个三位Unit(2) = "Million" '第二个三位Unit(3) = "Billion" '第三个三位Unit(4) = "Hundred"

Unit(8) = "And"

End If

End Sub

三、是我改过的代码:

Option Explicit

Dim StrNO(19) As String

Dim Unit(8) As String

Dim StrTens(9) As String

Public Function NumberToString(Number As Double) As String

Dim Str As String, BeforePoint As String, AfterPoint As String, tmpStr As String

Dim Point As Integer

Dim nBit As Integer

Dim CurString As String

Dim nNumLen As Integer

Dim T As String

Call Init

Str = CStr(Round(Number, 2))

' Str = Number

If InStr(1, Str, ".") = 0 Then

BeforePoint = Str

AfterPoint = ""

Else

BeforePoint = Left(Str, InStr(1, Str, ".") - 1)

T = Right(Str, Len(Str) - InStr(1, Str, "."))

If Len(T) < 2 Then AfterPoint = Val(T) * 10

If Len(T) = 2 Then AfterPoint = Val(T)

If Len(T) > 2 Then AfterPoint = Val(Left(T, 2))

End If

If Len(BeforePoint) > 12 Then

NumberToString = "Too Big."

Exit Function

End If

Str = ""

Do While Len(BeforePoint) > 0

nNumLen = Len(BeforePoint)

If nNumLen Mod 3 = 0 Then

CurString = Left(BeforePoint, 3)

BeforePoint = Right(BeforePoint, nNumLen - 3)

Else

CurString = Left(BeforePoint, (nNumLen Mod 3))

BeforePoint = Right(BeforePoint, nNumLen - (nNumLen Mod 3))

End If

nBit = Len(BeforePoint) / 3

tmpStr = DecodeHundred(CurString)

If (BeforePoint = String(Len(BeforePoint), "0") Or nBit = 0) And Len(CurString) = 3 Then

If CInt(Left(CurString, 1)) <> 0 And CInt(Right(CurString, 2)) <> 0 Then

'tmpStr = Left(tmpStr, InStr(1, tmpStr, Unit(4)) + Len(Unit(4))) & Unit(8) & " " & Right(tmpStr, Len(tmpStr) - (InStr(1, tmpStr, Unit(4)) + Len(Unit(4))))

Else 'If CInt(Left(CurString, 1)) <> 0 And CInt(Right(CurString, 2)) = 0 Then

'tmpStr = Unit(8) & " " & tmpStr

End If

End If

If nBit = 0 Then

Str = Trim(Str & " " & tmpStr)

Else

Str = Trim(Str & " " & tmpStr & " " & Unit(nBit))

End If

If Left(Str, 3) = Unit(8) Then Str = Trim(Right(Str, Len(Str) - 3))

If BeforePoint = String(Len(BeforePoint), "0") Then Exit Do

'Debug.Print Str

Loop

BeforePoint = Str

If Len(AfterPoint) > 0 Then

AfterPoint = Unit(6) & " " & DecodeHundred(AfterPoint)

Else

AfterPoint = Unit(5)

End If

NumberToString = BeforePoint & " " & AfterPoint

End Function

Private Function DecodeHundred(HundredString As String) As String

Dim tmp As Integer

If Len(HundredString) > 0 And Len(HundredString) <= 3 Then

Select Case Len(HundredString)

Case 1

tmp = CInt(HundredString)

If tmp <> 0 Then DecodeHundred = StrNO(tmp)

Case 2

tmp = CInt(HundredString)

If tmp <> 0 Then

If (tmp < 20) Then

DecodeHundred = StrNO(tmp)

Else

If CInt(Right(HundredString, 1)) = 0 Then

DecodeHundred = StrTens(Int(tmp / 10))

Else

DecodeHundred = StrTens(Int(tmp / 10)) & "-" & StrNO(CInt(Right(HundredString, 1)))

End If

End If

End If

Case 3

If CInt(Left(HundredString, 1)) <> 0 Then

DecodeHundred = StrNO(CInt(Left(HundredString, 1))) & " " & Unit(4) & " " & DecodeHundred(Right(HundredString, 2))

Else

DecodeHundred = DecodeHundred(Right(HundredString, 2))

End If

Case Else

End Select

End If

End Function

Private Sub Init()

If StrNO(1) <> "One" Then

StrNO(1) = "One"

StrNO(2) = "Two"

StrNO(3) = "Three"

StrNO(4) = "Four"

StrNO(5) = "Five"

StrNO(6) = "Six"

StrNO(7) = "Seven"

StrNO(8) = "Eight"

StrNO(9) = "Nine"

StrNO(10) = "Ten"

StrNO(11) = "Eleven"

StrNO(12) = "Twelve"

StrNO(13) = "Thirteen"

StrNO(14) = "Fourteen"

StrNO(15) = "Fifteen"

StrNO(16) = "Sixteen"

StrNO(17) = "Seventeen"

StrNO(18) = "Eighteen"

StrNO(19) = "Nineteen"

StrTens(1) = "Ten"

StrTens(2) = "Twenty"

StrTens(3) = "Thirty"

StrTens(4) = "Forty"

StrTens(5) = "Fifty"

StrTens(6) = "Sixty"

StrTens(7) = "Seventy"

StrTens(8) = "Eighty"

StrTens(9) = "Ninety"

Unit(1) = "Thousand" '材 熌

Unit(2) = "Million" '材 熌

Unit(3) = "Billion" '材 熌

Unit(4) = "Hundred"

Unit(5) = "Only"

Unit(6) = "Point"

Unit(7) = "Cents"

Unit(8) = "And"

End If

End Sub

数字转为英文大写

'****************' Main Function *'**************** Function SpellNumber(ByVal MyNumber) Dim Yuan, Fen, Temp Dim DecimalPlace, Count ReDim Place(9) As String Application.Volatile True Place(2) = " Thousand " Place(3) = " Million " Place(4) = " Billion " Place(5) = " Trillion " ' String representation of amount MyNumber = Trim(Str(MyNumber)) ' Position of decimal place 0 if none DecimalPlace = InStr(MyNumber, ".") 'Convert Fen and set MyNumber to Yuan amount If DecimalPlace > 0 Then Fen = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2)) MyNumber = Trim(Left(MyNumber, DecimalPlace - 1)) End If Count = 1 Do While MyNumber <> "" Temp = GetHundreds(Right(MyNumber, 3)) If Temp <> "" Then Yuan = Temp & Place(Count) & Yuan If Len(MyNumber) > 3 Then MyNumber = Left(MyNumber, Len(MyNumber) - 3) Else MyNumber = "" End If Count = Count + 1 Loop Select Case Yuan Case "" Yuan = "No Yuan" Case "One" Yuan = "One Yuan" Case Else Yuan = Yuan & " Yuan" End Select Select Case Fen Case "" Fen = " and No Fen" Case "One" Fen = " and One Fen" Case Else Fen = " and " & Fen & " Fen" End Select

VB将数字翻译成英文

下面是一个将阿拉伯数字转换成英文说法的VB代码,源程序默认将小数点后面也翻译成英文 附源代码: '****************' Main Function *'**************** Function SpellNumber(ByVal MyNumber) Dim Dollars, Cents, Temp Dim DecimalPlace, Count ReDim Place(9) As String Application.Volatile True Place(2) = " Thousand " Select Case Cents Case """" Place(3) = " Million " Place(4) = " Billion " Place(5) = " Trillion " ' String representation of amount MyNumber = Trim(Str(MyNumber)) ' Position of decimal place 0 if none DecimalPlace = InStr(MyNumber, ".") 'Convert cents and set MyNumber to dollar amount If DecimalPlace > 0 Then Cents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2)) MyNumber = Trim(Left(MyNumber, DecimalPlace - 1)) End If Count = 1 Do While MyNumber <> "" Temp = GetHundreds(Right(MyNumber, 3)) If Temp <> "" Then Dollars = Temp & Place(Count) & Dollars If Len(MyNumber) > 3 Then MyNumber = Left(MyNumber, Len(MyNumber) - 3) Else MyNumber = "" End If Count = Count + 1 Loop Select Case Dollars Case "" Dollars = "No Dollars" Case "One" Dollars = "One Dollar" Case Else Dollars = Dollars & " Dollars" End Select

EXCEL 中如何将数字转换成英文

一、网上下载的代码 1.创建一个模块: 在SHEET上,右键-》查看代码。选中“模块”-》插入模块。 2.写代码: Option Explicit Dim StrNO(19) As String Dim Unit(8) As String Dim StrTens(9) As String Public Function NumberToString(Number As Double) As String Dim Str As String, BeforePoint As String, AfterPoint As String, tmpStr As String Dim Point As Integer Dim nBit As Integer Dim CurString As String Dim nNumLen As Integer Dim T As String Call Init Str = CStr(Round(Number, 2)) ' Str = Number If InStr(1, Str, ".") = 0 Then BeforePoint = Str AfterPoint = "" Else BeforePoint = Left(Str, InStr(1, Str, ".") - 1) T = Right(Str, Len(Str) - InStr(1, Str, ".")) If Len(T) < 2 Then AfterPoint = Val(T) * 10 If Len(T) = 2 Then AfterPoint = Val(T) If Len(T) > 2 Then AfterPoint = Val(Left(T, 2)) End If If Len(BeforePoint) > 12 Then NumberToString = "Too Big." Exit Function End If Str = "" Do While Len(BeforePoint) > 0 nNumLen = Len(BeforePoint) If nNumLen Mod 3 = 0 Then CurString = Left(BeforePoint, 3)

整数的每位数字转换成英文实验

实验内容 题目描述 请把输入整数的每位数字转换成英文。如当输入1024时,输出:one, zero, two, four 输入,输入为一个整数 输出,按整数每一位输出其英文单词,单词间用逗号加空格分隔,单词由小写字母组成。样例输入 20345 样例输出 two, zero, three, four, five 提示 注意:大家要考虑数据为“0”的情况,此时如果取对0取对数会出错 源代码:: #include #define N 200 int main() { int n,k,j,s; int a[N]; scanf("%d",&n); j=0; s=0; while(n!=0) { k=n%10; n=n/10; a[j]=k; j++; s=s+j; } for(j=s-1;j>0;j--) { switch(a[j]) { case 0: printf("zero,");break; case 1: printf("one,");break; case 2: printf("two,");break; case 3: printf("three,");break; case 4: printf("four,");break; case 5: printf("five,");break; case 6: printf("six,");break; case 7 : printf("seven,");break;

case 8 : printf("eight,");break; case 9 : printf("nine,");break; } } switch(a[0]) { case 0: printf("zero");break; case 1: printf("one");break; case 2: printf("two");break; case 3: printf("three");break; case 4: printf("four");break; case 5: printf("five");break; case 6: printf("six");break; case 7 : printf("seven");break; case 8 : printf("eight");break; case 9 : printf("nine");break; } return 0; }

英语数字换算

三、数词组成的常用短语 这类短语大多是由数词和介词搭配而成,或是数词和其他词类搭配而成,常用来表示不确定的范围和概念,有时也可表示事物所处的状态或其他情况。例如: by hundreds 数以百计 by thousands 数以千计;大量 by(the) millions 数以百万计 by halves 不完全 hundreds of 数百;数以百计 thousands of 数千;数以千计 hundreds of thousands of 几十万;无数的 thousands upon thousands 万千上万 millions upon millions of 千百万 tens of, decades of 数十个 dozens of 几打;几十个 scores of 许多,大量 billions of 几十亿 hundreds of millions 亿万

a thousand and one 无数的 a hundred and one 许多 ten to one 十之八九 nine cases out of ten 十之八九 nine tenths 十之八九;几乎全部 tens of thousands 好几万 several millions of 数百万 fifty-fifty 各半的;对半的;平均 by one hundred percent 百分之百的;全部a long hundred 一百多;一百二十 a few tenths of 十分之几;有几成 by twos and threes 三三两两 by ones or twos 三三两两;零零落落 in two twos 转眼;立即 at sixes and sevens 乱七八糟 one or two 少许;几个

英语中数字表示(非常实用)

英语中数字表示 在汉英笔译和英语写作中,经常会遇到数字;哪些场合用单词表示,哪些场合用阿拉伯数字表示,往往让人难以确定,现行语法书中也极少涉及此类问题。实际上,以英语为母语的国家,在书写数字时已形成几条约定俗成的规则,现总结如下供读者参考。 一、英美等国的出版社在排版时遵循一条原则,即1至10用单词 表示,10以上的数目用阿拉伯数字(也有的以100为界限),这条原则值得我们借鉴。 That table measures ten feet by five. 那个工作台长10英尺,宽5英尺。 The traditional pattern of classroom experience at the college level brings the professor and a group of 20 to 30 students together for a 45-to-50-minute class session two or three times a week. 大学课堂的传统的教学方式是,一个教授和二三十名学生每周见面两三次,每次授课时间45到50分钟。 二.人数用阿拉伯数字表示显得更简洁明了,但不定数量、近似值用单词表示较恰当。 There are 203817 voters on the electoral rolls. 选举名单上有203817个投票人。 Nearly thirty thousand voters took part in this election. 1

近3万个投票人参加了这次选举。 三.遇到日期、百分比、带单位的特殊数字,通常用阿拉伯数字。 Maximum swivel of table is l20. 工作台的最大旋转角度是120度。 Eg. 3rd March l991或3 March l991; a discount of 5 percent(5%的折扣); purchased 7 yards of carpet(买7码地毯); ordered 2 pounds of minced steak(订购2磅肉馅) 如果涉及的数目和单位是不定数,可用单词表示。 about five miles per hour(每小时大约5英里) at least ten yards away(至少有10码远) hesitated for a moment or two(犹豫了片刻) I have warned you a hundred times(我已经警告你多少遍了。) 四.在科技文章中,数字频繁出现,用阿拉伯数字比用单词陈述更有利。 The new engine has a capacity of 4.3 litres and a power output of 153 kilowatts at 4400 revolutions per minute. 这台新发动机的容积为4.3升,转速为每分钟4400转,时输出功率是153千瓦。 We know that the weight of a cubic foot of air at 0?C and 76cm,pressure is 0.08l pound, or 12 cubic feet of air

数字翻译方法

一、英译中 如果你听到下面一群复杂的数字,你该怎么记录呢? 例:It covers a total of five hundred forty-nine million nine hundred forty-six thousand seven hundred and sixty-eight square meters. 可能会有这样的几种记录方法: 第一种:5 h 49 m 9 h 46 th 7 h 68 sqm 第二种:549 m 946 th 768 sqm 如果在英译中时这么记录的话,恐怕等到规定翻译的时间过了你还没搞清究竟这堆数字是多少,翻成中文该怎么说。这时,我们就要考虑是否有简单易做的方法呢?答应肯定是YES。 记住:英文表达数字时可以从右往左,三位一逗号,例如前面记录的数字就是:549, 946,768 英文:三位一逗号,逗号从右往左,每个逗号的位置分别对应的是:thousand, million, billion。 因此,要想英文数字记得快而准,三位数的听写要过关。 听写英文数字和表达法这样应该没多大问题了,那么怎样翻译成中文呢?方法也是一样,中文用竖线表达,以区分英文的逗号,即从右往左、四位一竖。刚才例举的数字:549,946,768可以这么添上记号转换成中文的表达法:5│49,94│6,768 中文:四位一竖,每个竖线位置从右往左分别对应的是:万,亿 所以上面的数字经划线后可以轻松的读成:五亿//四千九百九十四万//六千七百六十八 二、中译英 有了上面中译英竖线和逗号的数字的记录和表达方法,相信数字的翻译会变得比较简单。 例:我们听到十二亿//七百二十一万//四百七十二 这个数字相对较长、较复杂,我们这么处理: 首先,中文的“万”“亿”按四位一竖的方法记录,因此写成12│0721│0472。之所以面对较长较大的数字这步不能省的原因是:如果你没有其中的一竖,我们往往容易在后面的“721”“472”前漏写0,这样就使数字的表达有误。 接着,把这个数字转换成英文。按英文从右往左三位一逗号的方法把中文竖线表达的数字12│0721│0472 转换成英文逗号标记的数字,为1,207,210,472。 最后,根据英文从右往左每个逗号分别代表的是thousand, million, billion,用英语表达出该数字:one billion two hundred and seven million two hundred and ten thousand four hundred and seven-two 有了逗号和竖线的辅助,从某种程度上说,长的数字也会变得容易记录和表达了。

阿拉伯数字转换成英文大写

启动Microsoft Excel。 按Alt+F11 启动Visual Basic 编辑器。 在“插入”菜单上,单击“模块”。 在模块表中键入下面的代码。 Option Explicit 'Main Function Function SpellNumber(ByValMyNumber) Dim Dollars, Cents, Temp Dim DecimalPlace, Count ReDimPlace(9) As String Place(2) = " Thousand " Place(3) = " Million " Place(4) = " Billion " Place(5) = " Trillion " ' String representation of amount. MyNumber = Trim(Str(MyNumber)) ' Position of decimal place 0 if none. DecimalPlace = InStr(MyNumber, ".") ' Convert cents and set MyNumber to dollar amount. If DecimalPlace> 0 Then Cents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & _ "00", 2)) MyNumber = Trim(Left(MyNumber, DecimalPlace - 1)) End If Count = 1 Do While MyNumber<> "" Temp = GetHundreds(Right(MyNumber, 3)) If Temp <> "" Then Dollars = Temp &Place(Count) & Dollars If Len(MyNumber) > 3 Then MyNumber = Left(MyNumber, Len(MyNumber) - 3) Else MyNumber = "" End If Count = Count + 1 Loop Select Case Dollars Case "" Dollars = "No Dollars" Case "One" Dollars = "One Dollar" Case Else Dollars = Dollars &" Dollars" End Select Select Case Cents

阿拉伯数字金额转换为英文会计金额

怎样用自定义函数将阿拉伯数字金额转换为英文会计金额,如:123.45 变为:One Hundred Twenty Three Dollars and Forty Five Cents A:按Alt+F11,插入→模块→在VBE窗口中输入以下代码: 1.Function SpellNumber(ByValMyNumber) 2. Dim Dollars, Cents, Temp 3. Dim DecimalPlace, Count 4. ReDim Place(9) As String 5. Application.Volatile True 6. Place(2) = " Thousand " 7. Place(3) = " Million " 8. Place(4) = " Billion " 9. Place(5) = " Trillion " ' String representation of amount 10. MyNumber = Trim(Str(MyNumber)) ' Position of decimal place 0 if none 11. DecimalPlace = InStr(MyNumber, ".") 12. 'Convert cents and set MyNumber to dollar amount 13. If DecimalPlace> 0 Then 14. Cents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2)) 15. MyNumber = Trim(Left(MyNumber, DecimalPlace - 1)) 16. End If 17. Count = 1 18. Do While MyNumber<> "" 19. Temp = GetHundreds(Right(MyNumber, 3)) 20. If Temp <> "" Then Dollars = Temp & Place(Count) & Dollars 21. If Len(MyNumber) > 3 Then 22. MyNumber = Left(MyNumber, Len(MyNumber) - 3) 23. Else 24. MyNumber = "" 25. End If 26. Count = Count + 1 27. Loop

EXCEL表格中将数字金额转换为英文

Excel表格中如何将数字金额转换为英文 (如B1列写162890元,自动转换为英文 ONE HUNDRED SIXTY TWO THOUSAND EIGHT HUNDRED NINETY DOLLARS AND NO CENTS) 1、新建Excel表格 2、按住“Alt+F11”打开VBA编辑器 3、在VBA编辑器中单击菜单栏“插入”——模块 4、在打开的模块中输入如下代码: Option Explicit Function 数字转英文(ByValMyNumber) Dim Dollars, Cents, Temp Dim DecimalPlace, Count ReDimPlace(9) As String Place(2) = " Thousand " Place(3) = " Million " Place(4) = " Billion " Place(5) = " Trillion " MyNumber = Trim(Str(MyNumber)) DecimalPlace = InStr(MyNumber, ".") If DecimalPlace> 0 Then Cents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & _ "00", 2)) MyNumber = Trim(Left(MyNumber, DecimalPlace - 1)) End If Count = 1 Do While MyNumber<> "" Temp = GetHundreds(Right(MyNumber, 3)) If Temp <> "" Then Dollars = Temp &Place(Count) & Dollars If Len(MyNumber) > 3 Then MyNumber = Left(MyNumber, Len(MyNumber) - 3) Else MyNumber = "" End If Count = Count + 1 Loop Select Case Dollars Case "" Dollars = "No Dollars" Case "One" Dollars = "One Dollar" Case Else Dollars = Dollars &" Dollars"

英文数字大写

英文数字大写 <% FUNCTION convertsz(sz) 'PARAMETERS sz 'PRIV ATE xs,sz1,sz2,sz3 IF sz > 1000000000 then '超过处理范围提示 convertsz="Number is too big" '数字大于10亿,超过处理范围! exit FUNCTION END IF sz=INT(sz*100+0.5)/100 ' 小数超过两位四舍五入xs=((sz-int(sz))*100) MOD 100 ' 取小数点后两位有效数字 IF xs>0 then 'cha=" AND"&conv3(xs)&" CENTS" ' 转换小数 cha=" AND "&xs&" CENTS" ELSE cha="" END IF sz1=INT((sz MOD 1000)) ' sz1为百、十、个3位数字sz=INT(sz/1000) ' sz为千位以上数字(含千位) cha=conv3(sz1)&cha ' 转换(sz1) IF sz>0 then sz2=(sz MOD 1000) ' sz2为十万、万、千3位数字 sz=INT(sz/1000) ' sz为百万位以上数字(含百万位) IF sz2=0 then

IF sz1=0 then ' (sz2)如果为'0',判断在百位之前是否加'AND' cha=cha ELSE cha=" AND"&cha END IF ELSE cha=conv3(sz2)&" THOUSAND"&cha ' 如果不为'0'转换(sz2) END IF IF sz>0 then sz3=(sz MOD 1000) ' sz3为亿、千万、百万3位数字 cha=conv3(sz3)&" MILLION"&cha ' 转换(sz3) END IF END IF 'cha="DOLLAR"&cha ' 在转换的结果之前加'DOLLAR' 'RETURN cha convertsz=cha end FUNCTION FUNCTION conv3(je) 'PARAMETERS je 'PRIV ATE jews,je1,je2,je3,tmp IF je<=0 then convertsz=""

excel中数字转换英文大写程序文件

Function NumbToEnglish(ByVal MyNumber) Dim Temp Dim Inte, Dec Dim DecimalPlace, Count ReDim Place(9) As String Place(2) = " Thousand " Place(3) = " Million " Place(4) = " Billion " Place(5) = " Trillion " ' 将数字Mynumber转换成字符串格式,并去掉多余空格 MyNumber = Trim(Str(MyNumber)) ' 查找小数点“.”位置 DecimalPlace = InStr(MyNumber, ".") ' 如果找到小数点... If DecimalPlace > 0 Then ' 转换小数部分 Temp = Len(Mid(MyNumber, DecimalPlace + 1)) Count = 1 Dec = "" Do While Count - 1 <> Temp Dec = Dec & " " & ConvertDecimal(Mid(MyNumber, DecimalPlace + Count, 1)) Count = Count + 1 Loop ' 去掉小数部分,保留剩下的整数部分留做转换 MyNumber = Trim(Left(MyNumber, DecimalPlace - 1)) End If Count = 1 Do While MyNumber <> "" ' 将最后的三位数字转换成英文数字 Temp = ConvertHundreds(Right(MyNumber, 3)) If Temp <> "" Then Inte = Temp & Place(Count) & Inte If Len(MyNumber) > 3 Then ' 如果整数部分大于三位,再向前移动三位数字重复进行转换 MyNumber = Left(MyNumber, Len(MyNumber) - 3)

英文数字、算式表达法

英文数字、算式表达法 一、小数表示法 1. 小数用基数词来表示,以小数点为界,小数点左首的数字为一个单位,表示整数,数字合起来读;小数点右首的数字为一个单位,表示小数,数字分开来读;小数点读作 point,o读作 zero或o[ou],整数部分为零时,可以省略不读。 zero point four或point four 零点四。 ten point two three 十点二三。 twenty-five point six seven 二十五点六七。 one point o three 一点零三。 2. 当数字值大于1时,小数后面的名词用复数,数字值小于1时,小数后面的名词用单数。 meters 一点零三米。 ton 零点四九吨。 tons 一点五吨。 二、分数表示法 1.基数词作分子,序数词作分母,除了分子是“1”以外,其它情况下序数词都要用复数形式。 3/4 three fourths或 three quarters 1/3 one third或a third. 24/25 twenty-four twenty-fifths . 3 1/ 4 three and one fourth或 three and one quarter . 1/2 a half 1/4 one quarter或a quarter . 1 1/ 2 one and a half 1 1/4 one and a quarter. 2. 当分数后面接名词时,如果分数表示的值大于1,名词用复数;小于1,名词用单数。

1 1/ 2 hours 一个半小时(读作 one and a half hours)。 2 3/4 meters 二又四分之三米(读作two and three-fourths meters)。 4/5 meter 五分之四米 5/6 inch 六分之五英寸。 三、百分数表示法 百分数用基数+percent表示: 50% fifty percent 百分之五十。 3% three percent 百分之三。 % zero point one two percent 百分之零点一二。 4‰ = four per mill 这里的percent前半部per表示“每一”,cent这一后半部分表示“百”,所以百分之几中percent不用复数形式。 四、加、减、乘、除和乘方表示法 1. “加”用plus,and或add表示:“等于”用is,make,equal等词表示。 2+3=?可表示为: How much is two plus three? 2+3=5 Two plus three is five. Two and three is equal to five. Two and three make five. Two added to three equals five. If we add two to/and three,we get five. 二加三等于五。 2. “减”用 minus或 take from表示 10-6=? How much is ten minus six? 10-6=4 Ten minus six is four. Take six from ten and the remainder is four. Six (taken) from ten is four. 十减去六等于四。 3. “乘”用time(动词)或multiply表示 3×4=? How much is three times four?

数字的翻译技巧

数字的翻译一直是口译中的难点。这是因为中英文数字的表达,在5个digit以上就不对应了,简单的一个例子:1万,英文的表达是10 thousand。因此数字的表达,特别是中英文之间的翻译转换,一定要靠记笔记,并借助符号,用符号来代替单位,区分中英文单位间的差异。 一、英译中 如果你听到下面一群复杂的数字,你该怎么记录呢? 例:It covers a total of five hundred forty-nine million nine hundred forty-six thousand seven hundred and sixty-eight square meters. 可能会有这样的几种记录方法: 第一种:5 h 49 m 9 h 46 th 7 h 68 sqm 第二种:549 m 946 th 768 sqm 如果在英译中时这么记录的话,恐怕等到规定翻译的时间过了你还没搞清究竟这堆数字是多少,翻成中文该怎么说。这时,我们就要考虑是否有简单易做的方法呢?答应肯定是YES。记住:英文表达数字时可以从右往左,三位一逗号,例如前面记录的数字就是:549, 946,768 英文:三位一逗号,逗号从右往左,每个逗号的位置分别对应的是:thousand, million, billion。 因此,要想英文数字记得快而准,三位数的听写要过关。 听写英文数字和表达法这样应该没多大问题了,那么怎样翻译成中文呢?方法也是一样,中文用竖线表达,以区分英文的逗号,即从右往左、四位一竖。刚才例举的数字:549,946,768可以这么添上记号转换成中文的表达法:5│49,94│6,768 中文:四位一竖,每个竖线位置从右往左分别对应的是:万,亿 所以上面的数字经划线后可以轻松的读成:五亿//四千九百九十四万//六千七百六十八 二、中译英 有了上面中译英竖线和逗号的数字的记录和表达方法,相信数字的翻译会变得比较简单。例:我们听到十二亿//七百二十一万//四百七十二 这个数字相对较长、较复杂,我们这么处理: 首先,中文的“万”“亿”按四位一竖的方法记录,因此写成 12│0721│0472。之所以面对较长较大的数字这步不能省的原因是:如果你没有其中的一竖,我们往往容易在后面的“721”“472”前漏写0,这样就使数字的表达有误。 接着,把这个数字转换成英文。按英文从右往左三位一逗号的方法把中文竖线表达的数字12│0721│0472 转换成英文逗号标记的数字,为1,207,210,472。 最后,根据英文从右往左每个逗号分别代表的是thousand, million, billion,用英语表达出该数字:one billion two hundred and seven million two hundred and ten thousand four hundred and seven-two 有了逗号和竖线的辅助,从某种程度上说,长的数字也会变得容易记录和表达了。 ?+ plus 加号;正号 - minus 减号;负号 ±plus or minus 正负号 ×is multiplied by 乘号

英文数字表达

英文数字表达 数字英文表达 一、小数(decimal) 小数点读作point,小数点左边按整数的基数词(one, two, three ...)读,小数点右边依次用个位数的基数词读出。整数部分为零时,小数点可以省略不读。当小数大于1时,小数后面的名词用复数,小数小于1时,小数后面的名词用单数。 小数中“0”的读法 “0”在小数中通常读作nought(英)或zero(美),也可读作字母o。如: 0.08(nought)point nought eight或(zero)point zero eight 9.07 nine point o seven 1.小于"1"的小数 小数点左边的零读做naught(英)或zero(美),也可不读。小数点右边的小数部分按个位基数词依次读出。在小数点后遇到零时,可读做naught O zero,也可以读做字母"o"的音,例如: 数字表示法 0.4 naught/ O /zero point four; point four 0.128 naught/ O /zero point one two eight; point one two eight 0.305 naught /O /zero point three o five; point three zero five 2.大于"1"的小数 小数点左边的整数部分按整数读法读出。小数点右边的小数部分按个位基数词依次读出。在小数点后遇到零时,可读做naught O zero,也可以读做字母"o"的音,例如: 数字表示法 5.02 five point naught O zero two; five point o two

相关主题
相关文档
最新文档