Hướng dẫn python round to 2 decimal places - python làm tròn đến 2 chữ số thập phân

Bạn muốn làm tròn câu trả lời của bạn.

round(value,significantDigit) là giải pháp thông thường để làm điều này, tuy nhiên điều này đôi khi không hoạt động như người ta mong đợi từ góc độ toán học khi chữ số ngay lập tức kém hơn (bên trái) chữ số bạn làm tròn để có 5.sometimes does not operate as one would expect from a math perspective when the digit immediately inferior (to the left of) the digit you're rounding to has a 5.

Dưới đây là một số ví dụ về hành vi không thể đoán trước này:

>>> round(1.0005,3)
1.0
>>> round(2.0005,3)
2.001
>>> round(3.0005,3)
3.001
>>> round(4.0005,3)
4.0
>>> round(1.005,2)
1.0
>>> round(5.005,2)
5.0
>>> round(6.005,2)
6.0
>>> round(7.005,2)
7.0
>>> round(3.005,2)
3.0
>>> round(8.005,2)
8.01

Giả sử ý định của bạn là thực hiện việc làm tròn truyền thống cho các số liệu thống kê trong khoa học, đây là một trình bao bọc tiện dụng để có được chức năng round hoạt động như mong đợi cần phải có thêm những thứ như

>>> round(0.075,2)

0.07

>>> round(0.075+10**(-2*6),2)

0.08
1.

>>> round(0.075,2)

0.07

>>> round(0.075+10**(-2*6),2)

0.08

Aha! Vì vậy, dựa trên điều này, chúng ta có thể tạo ra một chức năng ...

def roundTraditional(val,digits):
   return round(val+10**(-len(str(val))-1), digits)

Về cơ bản, điều này thêm một giá trị thực sự nhỏ vào chuỗi để buộc nó phải làm tròn đúng các trường hợp không thể đoán trước được, nơi nó không thông thường với chức năng round khi bạn mong đợi. Một giá trị thuận tiện để thêm là

>>> round(0.075,2)

0.07

>>> round(0.075+10**(-2*6),2)

0.08
3 trong đó
>>> round(0.075,2)

0.07

>>> round(0.075+10**(-2*6),2)

0.08
4 là độ dài của chuỗi số bạn đang cố gắng sử dụng round trên Plus
>>> round(0.075,2)

0.07

>>> round(0.075+10**(-2*6),2)

0.08
6.

Cách tiếp cận của việc sử dụng

>>> round(0.075,2)

0.07

>>> round(0.075+10**(-2*6),2)

0.08
7 là có chủ ý, vì nó là số lượng nhỏ lớn nhất bạn có thể thêm vào để buộc sự thay đổi, đồng thời đảm bảo rằng giá trị bạn thêm không bao giờ thay đổi làm tròn ngay cả khi thiếu thập phân
>>> round(0.075,2)

0.07

>>> round(0.075+10**(-2*6),2)

0.08
8. Tôi có thể chỉ sử dụng
>>> round(0.075,2)

0.07

>>> round(0.075+10**(-2*6),2)

0.08
9 với
def roundTraditional(val,digits):
   return round(val+10**(-len(str(val))-1), digits)
0 có khả năng trừ
>>> round(0.075,2)

0.07

>>> round(0.075+10**(-2*6),2)

0.08
6 nữa ... nhưng đơn giản hơn khi luôn trừ
>>> round(0.075,2)

0.07

>>> round(0.075+10**(-2*6),2)

0.08
6 vì điều đó sẽ không thay đổi nhiều phạm vi số thập phân này có thể xử lý đúng cách. Cách tiếp cận này sẽ thất bại nếu các giá trị của bạn đạt đến giới hạn của loại, điều này sẽ thất bại, nhưng đối với gần như toàn bộ phạm vi giá trị thập phân hợp lệ mà nó sẽ hoạt động.

Vì vậy, mã đã hoàn thành sẽ giống như:

def main():
    printC(formeln(typeHere()))

def roundTraditional(val,digits):
    return round(val+10**(-len(str(val))-1))

def typeHere():
    global Fahrenheit
    try:
        Fahrenheit = int(raw_input("Hi! Enter Fahrenheit value, and get it in Celsius!\n"))
    except ValueError:
        print "\nYour insertion was not a digit!"
        print "We've put your Fahrenheit value to 50!"
        Fahrenheit = 50
    return Fahrenheit

def formeln(c):
    Celsius = (Fahrenheit - 32.00) * 5.00/9.00
    return Celsius

def printC(answer):
    answer = str(roundTraditional(answer,2))
    print "\nYour Celsius value is " + answer + " C.\n"

main()

... nên cung cấp cho bạn kết quả bạn mong đợi.

Bạn cũng có thể sử dụng thư viện thập phân để thực hiện điều này, nhưng trình bao bọc mà tôi đề xuất đơn giản hơn và có thể được ưa thích trong một số trường hợp.


EDIT: Cảm ơn Blckknght vì đã chỉ ra rằng trường hợp rìa 5 chỉ xảy ra đối với các giá trị nhất định ở đây. Thanks Blckknght for pointing out that the 5 fringe case occurs only for certain values here.

Hướng dẫn python round to 2 decimal places - python làm tròn đến 2 chữ số thập phân

Python cung cấp nhiều phương pháp toán học cho các hoạt động toán học như gốc vuông, số mũ, v.v.

Trong bài viết này, tôi sẽ chỉ cho bạn cách làm tròn một số vào một vị trí thập phân được chỉ định.

Một nơi thập phân là gì?

Nhìn vào số này: 324,89.324.89.

Mỗi số ở đây có một vị trí được gọi là giá trị địa điểm. Giá trị địa điểm của:place value. The place value of:

  • 3 là hàng trăm is hundreds
  • 2 là hàng chục is tens
  • 4 là những cái is ones
  • 8 là một phần mười is tenths
  • 9 là phần trăm is hundredths

Sau điểm thập phân, bạn có hai số: 8, sau đó 9. Vị trí thập phân của một số là vị trí của số sau một điểm thập phân (ở phía bên phải của nó).8, then 9. The decimal place of a number is the position of the number after a decimal point (on the right side of it).

Định nghĩa này có nghĩa là vị trí thập phân của 8 (ở vị trí thứ mười) là 1 và 9 (ở vị trí thứ trăm) là 2.8 (in the tenths position) is 1, and 9 (in the hundredths position) is 2.

Làm thế nào để làm tròn đến một vị trí thập phân nhất định

Nó có nghĩa là gì để làm tròn đến một vị trí thập phân nhất định? Nó có nghĩa là bạn làm tròn một số tại một vị trí thập phân dựa trên số sau đó.

Nếu số sau vị trí thập phân là 5 hoặc nhiều hơn, số lượng tại vị trí thập phân được làm tròn lên +1. Mặt khác, số lượng tại vị trí thập phân vẫn giữ nguyên và số lượng sau khi vị trí thập phân được làm tròn xuống 0.+1. Otherwise, the number at the decimal place stays the same and the number after the decimal place is rounded down to 0.

Ví dụ, giả sử chúng tôi muốn làm tròn 24,89 đến 1 thập phân. Hoặc bạn có thể đặt nó làm tròn 24,89 đến lần thứ mười gần nhất.24.89 to 1 decimal place. Or you can put it as rounding up 24.89 to the nearest tenth.

Số 8 ở vị trí 1 thập phân và số sau 8 là 9. Vì 9 là hơn 5, 24,89, được làm tròn đến thứ mười gần nhất sẽ là 24,9.8 is at the 1 decimal place, and the number after 8 is 9. Since 9 is more than 5, 24.89, rounded up to the nearest tenth will be 24.9.

Một ví dụ khác, chúng ta hãy lấy 24,82 và làm tròn nó đến 1 thập phân (thứ mười gần nhất). Vì 2 không lớn hơn 5, 8 vẫn giữ nguyên và 2 được làm tròn xuống - dẫn đến 24.8.24.82 and round it to 1 decimal place (the nearest tenth). Since 2 is not larger than 5, 8 remains the same, and 2 gets rounded down – resulting in 24.8.

Bây giờ bạn đã hiểu làm thế nào để làm tròn một vị trí thập phân, chúng ta hãy xem làm thế nào để làm điều đó trong Python.

Bạn có thể sử dụng hàm round toàn cầu để làm tròn các số vào một vị trí thập phân. Cú pháp là:

round(number, decimal_point)

Hàm chấp nhận số và

def roundTraditional(val,digits):
   return round(val+10**(-len(str(val))-1), digits)
5 làm đối số.
def roundTraditional(val,digits):
   return round(val+10**(-len(str(val))-1), digits)
5 Chỉ định vị trí thập phân mà bạn muốn làm tròn số lên đến. Hãy xem một ví dụ:

num = 24.89

rounded = round(num, 1)
print(rounded)

# 24.9

Đây là một ví dụ khác về số dài hơn:

num = 20.4454

rounded3 = round(num, 3)
# to 3 decimal places

rounded2 = round(num, 2)
# to 2 decimal places

print(rounded3)
# 20.445

print(rounded2)
# 20.45

Đối với

def roundTraditional(val,digits):
   return round(val+10**(-len(str(val))-1), digits)
7,
def roundTraditional(val,digits):
   return round(val+10**(-len(str(val))-1), digits)
8 được làm tròn lên đến 3 thập phân. Tại vị trí thập phân thứ 3 là 5 và số lượng xuất hiện sau khi nó là 4. Vì 4 không lớn hơn 5, số 5 vẫn giữ nguyên và 4 được làm tròn xuống 0.5, and the number that comes after it is 4. Since 4 is not greater than 5, the number 5 stays the same and 4 is rounded down to 0.

Đối với

def roundTraditional(val,digits):
   return round(val+10**(-len(str(val))-1), digits)
9,
def roundTraditional(val,digits):
   return round(val+10**(-len(str(val))-1), digits)
8 được làm tròn lên đến 2 thập phân. Ở vị trí thập phân thứ 2 là 4 và số sau là 5. Vì số này lớn hơn hoặc bằng 5, số 4 được làm tròn lên đến 5.4, and the number after it is 5. Since this number is greater than or equal to 5, the number 4 is rounded up to 5.

Sự kết luận

Làm tròn các số có thể hữu ích để giữ các số nổi trong các chữ số cố định.

Ví dụ, điều này rất hữu ích với các loại tiền tệ chỉ chấp nhận hai vị trí thập phân (như đồng đô la: 100,99 đô la). Trong trường hợp tính toán cho một sản phẩm dẫn đến 50,678 đô la, bạn có thể muốn làm tròn nó đến 2 số thập phân, như thế này: 50,68 đô la. Bằng cách này, có thể dễ dàng hơn để cung cấp cho ai đó giá trị tiền tệ thực tế.

Trong bài viết này, tôi đã giải thích ngắn gọn về vị trí thập phân là gì và làm thế nào để làm tròn số đến một số chữ số thập phân ở Python.



Học mã miễn phí.Chương trình giảng dạy nguồn mở của Freecodecamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển.Bắt đầu