Tôi cần làm tròn một cái phao. Ví dụ 4.00011. chức năng tích hợp tròn()
Luôn làm tròn lên khi số > 0,5 và làm tròn xuống khi <= 5. Điều này là rất tốt. Khi tôi muốn làm tròn lên (xuống), tôi import math
và sử dụng chức năng toán.ceil()
(toán.sàn()
) .Nhược điểm là trần nhà()
Và sàn nhà()
Không có "thiết lập" chính xác. Vì vậy, với tư cách là một lập trình viên R, về cơ bản tôi chỉ viết các hàm của riêng mình:
def my_round(x, Precision = 0, which = "up"):
import math
x = x * 10 ** độ chính xác
nếu mà == "lên":
x = math.ceil(x)
Elif mà == "xuống":
x = math.floor(x)
x = x / (10 ** độ chính xác)
trở về(x)
my_round(4.00018, 4, "lên")
Điều này sẽ in ra 4.0002
my_round(4.00018, 4, "down")
这会打印出 4.0001
我找不到对此的问题(为什么?)。我还错过了其他模块或功能吗?拥有一个具有基本(更改的)功能的大型图书馆会很棒。
编辑:我不谈论整数。
查看我在 this SO post 中的回答.您应该能够通过将 sàn nhà
Thay thế bằng tròn
来轻松地根据您的需要修改它。
如果有帮助,请告诉我!
biên tập只是感觉而已,所以想提出一个基于代码的解决方案
import math
def round2precision(val, precision: int = 0, which: str = ''):
assert precision >= 0
val *= 10 ** precision
round_callback = round
if which.lower() == 'up':
round_callback = math.ceil
if which.lower() == 'down':
round_callback = math.floor
return '{1:.{0}f}'.format(precision, round_callback(val) / 10 ** precision)
quantity = 0.00725562
print(quantity)
print(round2precision(quantity, 6, 'up'))
print(round2precision(quantity, 6, 'down'))
产生
0.00725562
0.007256
0.007255
Tôi là một lập trình viên xuất sắc, rất giỏi!