Đọc số thập phân ra tiếng việt trên Access

  • Thread starter blackangelnt
  • Ngày gửi

3450 lượt xem

B

blackangelnt

Sơ cấp
25/1/10
1
0
0
34
Nha Trang
Hix, mình đã thử các hàm trên forum mà hàm nào cũng bị sai hết

Mình bị trường hợp số : 10,05

Hàm thì đọc là : Mười
Hàm thì lại đọc là : Mười tấn năm >"<

Trong khi đó chính xác phải là : Mười tấn không năm hoặc là Mười chấm không năm .

Không biết ai gặp trường hợp này rồi thì giúp mình với :(
 
C

Calmly

Sơ cấp
11/11/09
2
0
0
Ca Mau
Anh (chị) đang dùng hàm nào thế? up hàm đó lên đi e chỉnh sửa lại cho.
 
V

viettienedu

Sơ cấp
22/11/06
5
0
1
54
Bien hoa
Đọc số thập phân trên Access

Chào Bạn, mình gửi bạn hàm sau bạn dùng thử nhe
co gì liên lac voi minh viettienedu@gmail.com

Function SO_CHAR(Number As Variant) As String

ReDim CACH(1 To 6) As String, MOTSO(1 To 10) As String
Dim NGUYEN As String, LE As String, KQ As String, i As String, M As String
Dim j As Variant, K As Variant, L As Variant, KQdai As Integer, Chuoi As String, T, U
'Gan gia tri cho tung phan tu cua mang MOTSO(1 to 10)
MOTSO(1) = " moät"
MOTSO(2) = " hai"
MOTSO(3) = " ba"
MOTSO(4) = " boán"
MOTSO(5) = " naêm"
MOTSO(6) = " saùu"
MOTSO(7) = " baûy"
MOTSO(8) = " taùm"
MOTSO(9) = " chín"
'Gan gia tri cho tung phan tu cua mang CACH(1 to 6)
CACH(1) = ""
CACH(2) = " ngaøn"
CACH(3) = " trieäu"
CACH(4) = " tyû"
CACH(5) = " ngaøn"
CACH(6) = " trieäu"
If Number = 0 Or IsNull(Number) Then 'Neu so tien la khong. Ham tra ve
SO_CHAR = " Zero." 'chuoi ky tu "Khong dong chan"
Exit Function 'va cham dut Ham
End If
'Dinh dang chuoi so, cat khoan trang va doi thanh chuoi
Chuoi = LTrim(Format$(Number, "################.00"))
NGUYEN = Left(Chuoi, Len(Chuoi) - 3) 'Cat lay phan nguyen cua chuoi so
LE = Right(Chuoi, 2) 'Cat lay phan le cua chuoi so
KQ = "" 'Khoi tao bien KQ (ket qua)
L = 1 'Khoi tao bien dem l
Do While Len(NGUYEN) > 0 'Thuc hien vong lap cat chuoi
j = "" 'NGUYEN cho den khi rong.
M = ""
If Len(NGUYEN) > 3 Then 'Neu chieu dai cua chuoi NGUYEN lon
i = Right(NGUYEN, 3) 'hon 3,cat lay 3 ky tu gan vao i
NGUYEN = Left(NGUYEN, Len(NGUYEN) - 3) 'NGUYEN tru 3 ky tu da cat
Else
i = Right("00" & NGUYEN, 3) 'Neu chieu dai NGUYEN nho hon 3,
NGUYEN = "" 'cong them ben trai cac ky tu "0"
End If 'cho du 3 va gan NGUYEN bang rong

'Bat dau xu ly tung so trong chuoi con i(l)=(###)

If i <> "000" Then

'Xu ly so thu nhat trong chuoi 3 ky tu i

K = Val(Left(i, 1))
If K = 0 Then
If NGUYEN <> "" Then
If L > 1 Then
j = j & " khoâng traêm"
End If
End If
Else
j = MOTSO(K) & " traêm"
End If

'Xu ly so thu hai trong chuoi 3 ky tu i

K = Val(Mid(i, 2, 1))
If K > 0 Then
If K = 1 Then
j = j & " möôøi"
Else
j = j & MOTSO(K) & " möôi"
End If
Else
If Val(Mid(i, 2, 1)) = 0 Then

If Val(Right(i, 1)) <> 0 And Val(Left(i, 1)) <> 0 Then
j = j & " leõ"
End If

End If
End If

'Xu ly so thu ba trong chuoi 3 ky tu i

K = Val(Right(i, 1))
If K > 0 Then
If K = 1 Then
If Val(Mid(i, 2, 1)) <> 0 And Val(Mid(i, 2, 1)) <> 1 Then
j = j & " moát"
Else
j = j & " moät"
End If
Else
If K = 5 And Val(Mid(i, 2, 1)) <> 0 Then
j = j & " laêm"
Else
j = j & MOTSO(K)
End If
End If
Else
j = j & ""
End If
j = j & CACH(L) & IIf(L > 1, ",", "")
'Else
' j = j & ""
End If
L = L + 1
KQ = j & KQ
Loop ' Ket thuc vong lap thu l

'Xu ly phan so le
If KQ = "" Then
KQ = " khoâng"
End If
If LE = "00" Then
M = " ."
Else
T = Val(Left(LE, 1))
U = Val(Right(LE, 1))
If T = 0 Then
M = " taán, leû" & MOTSO(U) & "."
Else
If T = 1 Then
If U = 5 Then
M = " taán, möôøi laêm ."
End If
If U = 0 Then
M = " taán,leû möôøi."
End If
If U <> 0 And U <> 5 Then
M = " taán, Möôøi" & MOTSO(U) & " ."
End If
Else
If U = 5 Then
M = " taán," & MOTSO(T) & " möôi laêm ."
End If
If U = 0 Then
M = " taán," & MOTSO(T) & " möôi ."
End If
If U <> 0 And U <> 5 Then
M = " taán," & MOTSO(T) & " möôi" & MOTSO(U) & " ."
End If
End If
End If
End If
Chuoi = Trim(KQ)
KQdai = Len(Chuoi)
Chuoi = IIf(Right(Chuoi, 1) = ",", Left(Chuoi, KQdai - 1), Chuoi)
Chuoi = LTrim(Chuoi + M)
KQdai = Len(Chuoi)
SO_CHAR = UCase(Left(Chuoi, 1)) + Right(Chuoi, KQdai - 1) 'Ket qua cuoi cung cua ham
End Function
 

Thành viên trực tuyến

  • xediengiatot
  • Hongbt79
  • Huyền Mia
  • Anhnp

Xem nhiều