Trang 1 / 2 12 LastLast
Hiển thị kết quả từ 1 đến 10 / 11
  1. #1
    Tham gia
    06-07-2007
    Bài viết
    8
    Like
    0
    Thanked 0 Times in 0 Posts

    Hấp dẫn đây ! cách đổi số sang chữ như thế nào

    Có ai biết đổi số sang chữ bằng javacript ko
    ví dụ : 18,956,354
    phải ra bằng chữ là: mười tám triệu chín trăm năm mươi sáu nghìn ba trăm năm mưoi bốn

    làm sao để làm được vậy các bác
    Đề này thầy cho về tự nghiên cứu mà lấy điểm một tiết
    xin cứu giúp
    em bí rồi
    Quote Quote

  2. #2
    Tham gia
    06-06-2006
    Location
    HCM
    Bài viết
    2,717
    Like
    136
    Thanked 73 Times in 54 Posts
    Chạy thử cái này xem nhe! Vài bữa nữa tui mới chạy thử được

    decimal meomeo;
    meomeo=11111111111;
    string gaugau=meomeo.ToString();

  3. #3
    Tham gia
    15-10-2007
    Bài viết
    13
    Like
    0
    Thanked 0 Times in 0 Posts
    bài này là bài thi của mình bí lù không giải được mà bài này dài lắm vì phải sử lý với số 5 ("lăm" với "năm")số 0("lẻ" với không ) số 10 ("mười")

  4. #4
    Tham gia
    06-06-2006
    Location
    HCM
    Bài viết
    2,717
    Like
    136
    Thanked 73 Times in 54 Posts
    à! coi lại rôì!
    Cái này là đọc số, chứ 0 phải chuyển số sang chữ!

    Bài này hồi học pascal có làm rồi!
    Cũng 0 có gì khó đâu!
    Bạn chia chuỗi số thành nhóm 3 ký tự.
    Nhóm đầu tiên: trăm, chục, đơn vị
    Nhóm thứ hai: (trăm,chục) + ngàn
    Nhóm thứ ba: (trăm, chục)+ triệu

    Như vậy, bạn xử lý 3 chữ số thôi! Tức là xử lý nhóm đầu thành công thì coi như được 1/2 bài toán.
    105 -> 1 trăm lẻ năm
    5 -> năm , 005--> năm
    25 --> hai mươi lăm
    15--> mười lăm

    Nói vung,if if vài cái là được thôi! Chúc bạn thành công!
    MÀ sao lâu vô quá vậy? trả lời rồi mà tới 1 tuần sau bạn mới vô lại
    Hình như có cái vbscript làm cái này á! bạn tìm thử xem!

  5. #5
    Tham gia
    06-06-2006
    Location
    HCM
    Bài viết
    2,717
    Like
    136
    Thanked 73 Times in 54 Posts
    nè! mới kiếm nè! bạn chuyển thành java nhe!
    Function Doisangsochuan(BaoNhieu)
    BaoNhieu = Trim(BaoNhieu)
    'Cat bỏ khoảng trống
    Do While InStr(1,BaoNhieu," ") > 0
    BaoNhieu = Mid(BaoNhieu, 1, InStr(1, BaoNhieu, " ") - 1) & Mid(BaoNhieu, InStr(1, BaoNhieu, " ") + 1)
    Loop
    Do While InStr(1, BaoNhieu, ".") > 0
    BaoNhieu = Mid(BaoNhieu, 1, InStr(1, BaoNhieu, ".") - 1) & Mid(BaoNhieu, InStr(1, BaoNhieu, ".") + 1)
    Loop
    Doisangsochuan = BaoNhieu
    End Function

    '================================================= ====
    'Hàm này dùng để đổi tiền từ số sang chuẩn
    '================================================= ====
    Function Tienchu(so)
    Dim sotien, Hang, Donvi, Dem, tien
    Dim Ketquacc
    Dim n, Nhom, K
    Hang = Array("None", "trăm", "mươi", "gì đó")
    Donvi = Array("None", "ngàn tỷ", "tỷ", "triệu", "ngàn", "đồng", "")
    Dem = Array("None", "một", "hai", "ba", "bốn", "năm", "sáu", "bảy", "tám", "chín")
    sotien = CStr(Cdbl(Doisangsochuan(so))) 'Đưa số về dạng chuẩn ko có dấu phân cách
    dai = len(sotien)
    If Cdbl(sotien) = 0 then
    Ketquacc = "Không đồng"
    Else ' sotien khác 0
    sotien = Abs(sotien) & ".00"
    sotien = Right(Space(15) & sotien, 18) ' Lay tong cong 18 ky tu
    For n = 1 to 6
    Nhom = Mid(sotien, (n * 3) - 2, 3)
    If Nhom <> Space(3) Then
    Select Case Nhom
    Case "000"
    If n = 5 Then
    chu = "đồng" & Space(1)
    Else
    chu = Space(0)
    End If
    Case ".00"
    chu = ""
    Case Else
    S1 = Left(Nhom, 1) : S2 = Mid(Nhom, 2, 1) : S3 = Right(Nhom, 1)
    chu = Space(0) : Hang(3) = Donvi(n)
    For K = 1 To 3
    dich = Space(0)
    If (Mid(Nhom, K, 1) <> " ") then
    S = Cint(Mid(Nhom, K, 1))
    If S > 0 Then
    dich = Dem(S) & Space(1) & Hang(K) & Space(1)
    Else
    If (K = 1) And (n > 1) And (n < 6) Then
    dich = "không" & Space(1) & Hang(K) & Space(1)
    End If
    End If
    Select Case K
    Case 2 And S = 1
    dich = "mười" & Space(1)
    Case 3 And S = 0 And Nhom <> Space(2) & "0"
    dich = Hang(K) & Space(1)
    Case 3 And S = 5 And s2 <> Space(1) And s2 <> "0"
    dich = "l" & Mid(dich, 2)
    Case 2 And S = 0 And S3 <> "0"
    If (S1 >= "1" And S1 <= "9") Or (S1 = "0" And n = 5) Then
    dich = "lẻ" & Space(1)
    End If
    End Select ' Của K
    chu = chu & dich
    End if 'Của S khác " "
    Next 'K
    Vitri = InStr(chu, "mươi một")
    If Vitri > 0 Then
    chu = Thaythechuoi(chu,"mươi một","mươi mốt")
    End If
    Ketqua = Ketqua & chu
    End Select
    End if
    Next ' Của n
    End if
    Ketquacc = UCase(Left(Ketqua, 1)) & Trim(Mid(Ketqua, 2))
    if Instr(Ketquacc,"đồng") = 0 then
    Ketquacc = Ketquacc & " đồng"
    End if
    Tienchu = Ketquacc
    End Function

    'Kết thúc hàm

  6. #6
    Tham gia
    18-02-2008
    Bài viết
    54
    Like
    0
    Thanked 0 Times in 0 Posts

    Tệ thật ! Chuyển số sang chữ này(đọc số)

    Theo như bạn nói N là số hàng triệu vậy tôi gọi N là 1 số đó.Dùng các biểu thức sau để đọc số(số càng lớn thì biểu thức càng phức tạp).
    Chú ý: bài toán này chỉ áp dụng cho những số < 10 triệu.Nếu muốn đọc số lớn hơn thì tự nâng cấp nhé!

    int trieu = N/1000000;//Đọc chữ số hàng triệu

    int tramnghin = (N - 1000000)/100000; //Đọc chữ số hàng trăm nghìn

    int chucnghin = (N - 1000000 - (tramnghin*100000))/10000; //Đọc chữ số hàng chục nghìn

    int nghin = (N - 1000000 - (tramnghin*100000) - (chucnghin*10000))/1000; //Đọc chữ số hàng nghìn

    int tram = (N - 1000000 - (tramnghin*100000) - (chucnghin*10000) - (nghin*1000))/100; //Đọc chữ số hàng trăm

    int chuc = (N - 1000000 - (tramnghin*100000) - (chucnghin *10000) - (nghin*1000) - (tram*100))/10; //Đọc chữ số hàng chục

    int donvi = (N - 1000000 - (tramnghin*100000) - (chucnghin*10000) - (nghin*1000) - (tram*100) - (chuc*10)); //Đọc chữ số hàng đơn vị

    Nhìn rất loằng ngoằng phải không bạn?Nếu muốn dễ hiểu hơn thì hãy áp dụng với những số nhỏ trước(tốt nhất nên bắt đầu với số < 1000).Đây chỉ là các biểu thức để đọc số,nói to tát thì nó là thuật toán giải quyết bài này.Phần việc còn lại bạn tự làm nhé.
    Gợi ý : Dùng cấu trúc SWITCH-CASE và vòng lặp IF-ELSE.
    Chúc bạn thành công!

  7. #7
    Tham gia
    22-04-2008
    Bài viết
    5
    Like
    0
    Thanked 0 Times in 0 Posts
    cho hỏi hàm Doisangsochuan(BaoNhieu) và hàm tienchu có phải là code bằng VBA trong word ko?

  8. #8
    Tham gia
    27-12-2003
    Location
    lang thang
    Bài viết
    279
    Like
    0
    Thanked 0 Times in 0 Posts
    Quote Được gửi bởi thuy04 View Post
    cho hỏi hàm Doisangsochuan(BaoNhieu) và hàm tienchu có phải là code bằng VBA trong word ko?
    Hình như là VB.NET .

  9. #9
    Tham gia
    12-11-2008
    Location
    Hà Nội
    Bài viết
    29
    Like
    0
    Thanked 1 Time in 1 Post
    Bài này dễ trước tớ làm mà ko bít vứt đâu. Để xem lục lại coi hihi. Đại loại mình sẽ chỉ cho bạn cách làm thôi.
    Bạn phân tích số: 18 956 354 nhé.
    Bạn sẽ thấy:
    10 mười, 20 hai mươi, 30 mươi.... --> muoi (đơn vị là số 0)
    11 mười một .... --> muoi mot
    111 một trăm mười một.
    1111 một nghìn một trăm mười một
    xyzktp--> x trăm y mươi z + đơn vị + k trăm t mươi p + đơn vị .....
    bạn phát hiện diều j mới chưa ???
    String number = "1234567890";
    int l = number.length;
    String []dv = new String[]{"nghin", "trieu", "ty", "nghi ty", "trieu ty"};
    String []tl = new String[]{"muoi","tram"};
    ....
    Bạn tự nghĩ típ nghe, cũng đơn giản thui, nếu bó tay thì cứ nói tớ lục tìm lại cho hihi/

    [=========> Bổ sung bài viết <=========]

    Tớ vừa viết lại hihi, chưa test kỹ bà còn test hộ nghe:
    Code:
     
      public static String transformNumber(String number) {
        // test number = "1234567890";
        if (number == null || number.trim().length() == 0)
          return "";
        int t, l = number.length();
        t = l - 1;
        String[] dv = new String[] { "nghin", "trieu", "ty", "nghi ty", "trieu ty" };
        String[] tl = new String[] { "muoi", "tram" };
        StringBuffer buffer = new StringBuffer();
        for (int i = 0; i < l; i++) {
          buffer.append(number.charAt(i)).append(" ");
          int k = (t - 1) / 3;
          if (k >= 0 && t > 0) {
            if (t % 3 == 0)
              buffer.append(dv[k]).append(" ");
            else
              buffer.append(tl[(t % 3) - 1]).append(" ");
            --t;
          }
        }
        number = buffer.toString(); 
        // truong hop dc biet
        number = number.replaceAll("muoi 0", "muoi").replaceAll("1 muoi 5", "muoi lam").replaceAll("1 muoi", "muoi").replaceAll("0 muoi", "le");
        // thay so
        number = number.replaceAll("1", "mot").replaceAll("2", "hai").replaceAll("3", "ba").replaceAll("4", "bon").replaceAll("5", "nam").replaceAll("6", "sau").replaceAll("7", "bay").replaceAll("8", "tam").replaceAll("9", "chin").replaceAll("0", "khong");
        System.out.println("\n\n " + number + "\n\n");
        return number;
      }
    1234567890
    -->: mot ty hai tram ba muoi bon trieu nam tram sau muoi bay nghin tam tram chin muoi
    1234567915
    -->: mot ty hai tram ba muoi bon trieu nam tram sau muoi bay nghin chin tram muoi lam
    Được sửa bởi hongxanh08 lúc 12:55 ngày 13-12-2011 Reason: Bổ sung bài viết

  10. #10
    Tham gia
    30-03-2009
    Bài viết
    1
    Like
    0
    Thanked 0 Times in 0 Posts
    bậnnò có thể vẻ sơ đồ khối của bài toán đổi số ra chữ được ko?
    hepl me cho mình với

Trang 1 / 2 12 LastLast

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •