DK04 - Làm tròn số

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, PyPy, Python, Ruby, Rust, Scratch, Swift

Chắc hẳn bạn đã một hoặc vài lần sử dụng các hàm làm tròn trong các ngôn ngữ lập trình để làm tròn số. Vậy bạn có tự tin cài đặt lại một hàm làm tròn có sẵn đó không? Hãy viết chương trình làm tròn số thực ~n~ nhập từ bàn phím về số nguyên gần nhất (chênh lệch giá trị nhỏ nhất).

Khuyến nghị: Không nên sử dụng các hàm làm tròn có sẵn của ngôn ngữ lập trình, hãy nên tự cài đặt để hiểu sâu hơn!

Input

  • Số thực ~n~

Giới hạn

  • ~-10^6 \le n \le 10^6~
  • Dữ liệu đầu vào đảm bảo có ít hơn 10 chữ số phần thập phân.

Output

Kết quả sau khi làm tròn

Sample

Input #1
12.567
Output #1
13
Input #2
5.5
Output #2
6
Input #3
-100.2999999
Output #3
-100

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 3
    lephuochauhungvuong  đã bình luận lúc 11, Tháng 4, 2025, 8:53
    #include<bits/stdc++.h>
    using namespace std;
    double n;
    long long t;
    int main ()
    {
        cin >> n;
        t=n;
        if(abs(n-t)>=0.5 && t>0)
            cout << t+1;
        else cout << fixed << setprecision(0)<< n;
        return 0;
    }
    

  • 0
    rrSpyblackdog  đã bình luận lúc 31, Tháng 3, 2025, 15:23

    import java.util.Scanner;

    public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); double a = sc.nextDouble(); int b = (int)a; double c = a - b; if (a > 0 && c >= 0.5){ b++; }else if (a < 0 && c <= -0.5){ b--; } System.out.println(b); } }

    Code Java ae góp ý giúp mình nhé


  • 0
    hnbloom251  đã bình luận lúc 14, Tháng 3, 2025, 14:12 sửa 2

    khó ghê


  • 0
    suzunesokawaiii  đã bình luận lúc 20, Tháng 2, 2025, 11:10

    Spoiler

    ...

    double a, b; int tam; tam = int(a + 0.5); tam = int(a - 0.5);

    done


  • 1
    frekraiko23  đã bình luận lúc 27, Tháng 10, 2024, 5:33 chỉnh sửa

    mặc dù ko ai cần nhưng đây là code pascal

    var a:extended;

    begin

    readln(a);

    write(a:0:0);

    end.

    :))


  • -3
    chauphan  đã bình luận lúc 21, Tháng 10, 2024, 13:35

    cần a long phan cứu:000


  • 0
    thaivp  đã bình luận lúc 11, Tháng 10, 2024, 14:42

    bài này dùng xâu là được tui thử rủi đúng hết đó


  • -1
    vietdzsadboy  đã bình luận lúc 10, Tháng 10, 2024, 7:46

    float freefire


  • 1
    Minh_Khoa  đã bình luận lúc 9, Tháng 10, 2024, 7:54

    xin code test 7 ạ


  • -1
    super_god  đã bình luận lúc 8, Tháng 10, 2024, 2:41

    hello ae


  • 0
    241124022204  đã bình luận lúc 2, Tháng 10, 2024, 13:58

    python sai case 7 chỗ nào ạ em xài float


  • 1
    phucan2015  đã bình luận lúc 30, Tháng 9, 2024, 12:30

    khó quá


  • 0
    k192010  đã bình luận lúc 20, Tháng 4, 2024, 13:51

    help test 3


  • 0
    lebinhminh12345679  đã bình luận lúc 6, Tháng 1, 2024, 8:43

    đề không sử dụng các hàm làm tròn mà bạn


  • -3
    hieugiangho2015  đã bình luận lúc 9, Tháng 2, 2024, 9:22

    code dai the


  • -4
    nguyennhat7185  đã bình luận lúc 14, Tháng 12, 2023, 9:15

    case 7 là gì v mn


  • -1
    nguyenxuantho_2003  đã bình luận lúc 6, Tháng 12, 2023, 3:50

    -Float (float): Có độ chính xác khoảng 7 chữ số thập phân. -Double (double): Có độ chính xác khoảng 15 chữ số thập phân. Đề yêu cầu là Dữ liệu đầu vào đảm bảo có ít hơn 10 chữ số phần thập phân. Nên test Case 6 để kiểu dữ liệu fload là sai nhé!!


  • 1
    taithikgirl  đã bình luận lúc 28, Tháng 10, 2023, 2:28

    hao no


  • 0
    dungnt_99  đã bình luận lúc 22, Tháng 10, 2023, 4:01 sửa 3

    số 6 input là gì ?


    • 1
      fIshx2  đã bình luận lúc 8, Tháng 12, 2023, 15:11

      doi float thanh double


  • 1
    KhangVN098  đã bình luận lúc 5, Tháng 10, 2023, 15:59

    Ai sai case 6 thì nhớ xem coai có để float hong nhé, nếu có nhớ chuyển sang double là đc nha


    • -3
      Bachuthegioi  đã bình luận lúc 14, Tháng 10, 2023, 14:08

      cho em hỏi tại sao v ạ


      • 2
        doquockien  đã bình luận lúc 27, Tháng 10, 2023, 14:38

        Kiểu float (số thực) chiếm 4 byte và có thể có tới 6 con số phần sau dấu thập phân, trong khi double chiếm 8 bytes và có thể có tới 10 con số phần thập phân


  • -1
    dicode  đã bình luận lúc 1, Tháng 9, 2023, 2:56

    cho em hỏi sai ở test case 6 là sao vậy ạ


    • -1
      anhdeptrai1912  đã bình luận lúc 15, Tháng 9, 2023, 3:24

      ké ạ mình cũng sai case 6 k biết sao


  • 1
    trinhtheanh3010  đã bình luận lúc 16, Tháng 8, 2023, 15:18

    tui làm kết quả đúng cả âm lẫn dương mà từ case 3 tui sai hết, ai có code đúng ko tui tham khảo vs


  • 2
    namchamhoccode  đã bình luận lúc 4, Tháng 8, 2023, 9:08

    Test case 6 kiểm tra gì vậy mn, mình bị lỗi hoài :((


  • 2
    violet_pho_hoc_tap  đã bình luận lúc 2, Tháng 8, 2023, 11:16

    chú ý số âm và a.49999999999999 thôi, 1 là so sánh tường minh (khi vượt quá độ chính xác của kiểu double thì khi xuất nó ra a.5 chứ nó vẫn là a.49999999999 ), 2 là sử lý xâu tìm dấu chấm đồ.


  • 0
    trungle  đã bình luận lúc 29, Tháng 7, 2023, 7:57 chỉnh sửa

    Dùng hàm round và cần chú ý đến case 3


  • 1
    hieudz2502  đã bình luận lúc 24, Tháng 7, 2023, 13:19

    Bài này nếu không dùng hàm có sẵn thì sử dụng string, kiểm tra kí tự đầu sau dấu . rồi xử lý, nhớ cẩn thận trường hợp có dấu - ở đầu


  • 0
    Tranh  đã bình luận lúc 21, Tháng 7, 2023, 15:52

    Case 6, với case 7 có giá trị là gì ấy mọi người. Em thử với cách round off mà ko qua được ạ


  • 1
    khanh2925  đã bình luận lúc 11, Tháng 7, 2023, 9:36

    Bài này làm sao vậy ạ :))


  • 1
    huynguyenchinh4  đã bình luận lúc 9, Tháng 7, 2023, 14:00

    xin chỉ giáo


  • 1
    codeovertime  đã bình luận lúc 9, Tháng 7, 2023, 6:16

    giỏi quá cậu