Hướng dẫn python round up without math - python làm tròn mà không cần toán học

3

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi đang làm việc trên một hệ thống không có sẵn mô -đun math. Tất cả các chức năng "Toán" được cài đặt (math.ceil(), math.round(), vv Tất cả các lỗi tạo ra).

Tôi thậm chí đã thử sử dụng

rounded_up_x = int(-(-x // 1))
0 mang lại:


__import__ not found

Vấn đề hiện tại đang làm tôi khó chịu: Làm thế nào tôi có thể tính toán toán học lên đến một số toàn bộ mà không cần

rounded_up_x = int(-(-x // 1))
1?

Hướng dẫn python round up without math - python làm tròn mà không cần toán học

Pault

38.7K13 Huy hiệu vàng100 Huy hiệu bạc139 Huy hiệu đồng13 gold badges100 silver badges139 bronze badges

hỏi ngày 19 tháng 7 năm 2019 lúc 15:54Jul 19, 2019 at 15:54

Hướng dẫn python round up without math - python làm tròn mà không cần toán học

4

Nếu

rounded_up_x = int(-(-x // 1))
2 là số nổi mà bạn muốn làm tròn lên một số nguyên và bạn muốn kết quả loại số nguyên, bạn có thể sử dụng

rounded_up_x = int(-(-x // 1))

Điều này hoạt động bởi vì phân chia số nguyên một vòng xuống, nhưng sử dụng dấu âm trước và sau khi thực hiện phân chia làm tròn hướng ngược lại.

rounded_up_x = int(-(-x // 1))
3 ở đây chuyển đổi kết quả phao thành một số nguyên. Xóa điều đó
rounded_up_x = int(-(-x // 1))
3 nếu bạn muốn một giá trị điểm nổi bằng một số nguyên, đó là những gì một số ngôn ngữ lập trình làm.

Hat-tip đến @d.larocque để chỉ ra rằng hàm

rounded_up_x = int(-(-x // 1))
5 của Python trả về một loại số nguyên.

Đã trả lời ngày 19 tháng 7 năm 2019 lúc 15:56Jul 19, 2019 at 15:56

Hướng dẫn python round up without math - python làm tròn mà không cần toán học

Rory Daultonrory DaultonRory Daulton

21.1k5 Huy hiệu vàng39 Huy hiệu bạc48 Huy hiệu đồng5 gold badges39 silver badges48 bronze badges

3

Trần của

rounded_up_x = int(-(-x // 1))
2 là số nguyên nhỏ nhất lớn hơn hoặc bằng
rounded_up_x = int(-(-x // 1))
2. Vì vậy, chỉ cần thêm 1 nếu phần thập phân của
rounded_up_x = int(-(-x // 1))
2 là khác không.

Một cách đơn giản sẽ là:

def myCeil(x):
    return int(x) + int((x>0) and (x - int(x)) > 0)

Examples:

print([myCeil(i) for i in [myCeil(i) for i in [-2, -1.1, -0.0, 0, 1, 1.2, 3]])
#[-2, -1, 0, 0, 1, 2, 3]

Đã trả lời ngày 19 tháng 7 năm 2019 lúc 16:07Jul 19, 2019 at 16:07

Hướng dẫn python round up without math - python làm tròn mà không cần toán học

Paultpaultpault

38.7K13 Huy hiệu vàng100 Huy hiệu bạc139 Huy hiệu đồng13 gold badges100 silver badges139 bronze badges

hỏi ngày 19 tháng 7 năm 2019 lúc 15:54

def ceil(n):
    q, r = divmod(n, 1)
    return int(q) + bool(r)

Nếu

rounded_up_x = int(-(-x // 1))
2 là số nổi mà bạn muốn làm tròn lên một số nguyên và bạn muốn kết quả loại số nguyên, bạn có thể sử dụngJul 19, 2019 at 16:22

Hướng dẫn python round up without math - python làm tròn mà không cần toán học

Điều này hoạt động bởi vì phân chia số nguyên một vòng xuống, nhưng sử dụng dấu âm trước và sau khi thực hiện phân chia làm tròn hướng ngược lại.

rounded_up_x = int(-(-x // 1))
3 ở đây chuyển đổi kết quả phao thành một số nguyên. Xóa điều đó
rounded_up_x = int(-(-x // 1))
3 nếu bạn muốn một giá trị điểm nổi bằng một số nguyên, đó là những gì một số ngôn ngữ lập trình làm.Håken Lid

Hat-tip đến @d.larocque để chỉ ra rằng hàm

rounded_up_x = int(-(-x // 1))
5 của Python trả về một loại số nguyên.9 gold badges47 silver badges64 bronze badges

1

Đã trả lời ngày 19 tháng 7 năm 2019 lúc 15:56

num = 12.4 / 3.3
print(num)
3.757575757575758
num.__ceil__()
4

Rory Daultonrory Daulton

int(-(-12.4 // 3.3))
4

21.1k5 Huy hiệu vàng39 Huy hiệu bạc48 Huy hiệu đồngSep 27 at 11:27

Trần của

rounded_up_x = int(-(-x // 1))
2 là số nguyên nhỏ nhất lớn hơn hoặc bằng
rounded_up_x = int(-(-x // 1))
2. Vì vậy, chỉ cần thêm 1 nếu phần thập phân của
rounded_up_x = int(-(-x // 1))
2 là khác không.

Một cách đơn giản sẽ là:

Đã trả lời ngày 19 tháng 7 năm 2019 lúc 16:07Jul 19, 2019 at 16:13

5

Paultpault

Đây là một cách để làm điều đó. Tôi nghĩ rằng điều này nên hoạt động trong hầu hết các phiên bản của Python.

Đã trả lời ngày 19 tháng 7 năm 2019 lúc 16:22

Håken Lidhåken nắp

21.6K9 Huy hiệu vàng47 Huy hiệu bạc64 Huy hiệu đồng

Trong Python 3, chúng ta có

rounded_up_x = int(-(-x // 1))
9 thậm chí còn được gọi bởi
rounded_up_x = int(-(-x // 1))
1 trong nội bộ,Jul 19, 2019 at 16:05

Hướng dẫn python round up without math - python làm tròn mà không cần toán học

Hoặc người ta luôn có thể phủ nhận kết quả của phân chia sàn số bị phủ định (và tạo một đối tượng INT mới trừ khi một chiếc phao sẽ làm),Parthik B.

Đã trả lời ngày 27 tháng 9 lúc 11:271 gold badge5 silver badges14 bronze badges

2

Làm thế nào để bạn làm tròn trong Python mà không có toán học?

Bởi vì, Round () là một hàm độc lập trong Python và không phải là một phần mở rộng của gói toán học. Vì vậy, tôi khuyên bạn nên tiếp tục và chỉ cần sử dụng vòng () thay vì toán học. vòng () và bạn sẽ ổn thôi.use round() instead of math. round() and you'll be fine.

Làm thế nào để tôi chỉ làm tròn trong Python?

Để thực hiện chiến lược làm tròn lên trên các chiến lược của người Viking trong Python, chúng tôi sẽ sử dụng chức năng cle () từ mô -đun toán học.Hàm CLE () có tên từ thuật ngữ trần nhà, được sử dụng trong toán học để mô tả số nguyên gần nhất lớn hơn hoặc bằng một số nhất định.use the ceil() function from the math module. The ceil() function gets its name from the term “ceiling,” which is used in mathematics to describe the nearest integer that is greater than or equal to a given number.

Làm thế nào để bạn làm tròn trong Python mà không làm tròn?

Số tròn trong Python bằng toán học ...
Đầu tiên, điểm thập phân trong n được chuyển sang số lượng địa điểm chính xác bên phải bằng cách nhân n với 10 ** số thập phân ..
Giá trị mới được làm tròn lên đến số nguyên gần nhất bằng toán học.trần ().
Cuối cùng, điểm thập phân được chuyển trở lại bên trái bằng cách chia cho 10 ** số thập phân ..

Python có vòng 0,5 lên hay xuống không?

Đối với 0,5, nó làm tròn lên.For = 0,5, hàm vòng () làm tròn số đến số chẵn gần nhất.Vì vậy, 0,5 được làm tròn về 0, và -0,5;33,5 và 34,5 đều được làm tròn đến 34;-33,5 -34,5 đều được làm tròn đến -34, v.v.. For =0.5, the round() function rounds the number off to the nearest even number. So, 0.5 is rounded to zero, and so is -0.5; 33.5 and 34.5 are both rounded off to 34; -33.5 -34.5 are both rounded off to -34, and so on.