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

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

>>> round(0.075,2)

0.07

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

0.08
4 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ó
>>> round(0.075,2)

0.07

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

0.08
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
>>> round(0.075,2)

0.07

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

0.08
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(0.075,2)

0.07

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

0.08
6 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
8.

>>> 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(0.075,2)

0.07

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

0.08
6 khi bạn mong đợi. Một giá trị thuận tiện để thêm là
def roundTraditional(val,digits):
   return round(val+10**(-len(str(val))-1), digits)
0 trong đó
def roundTraditional(val,digits):
   return round(val+10**(-len(str(val))-1), digits)
1 là độ dài của chuỗi số bạn đang cố gắng sử dụng
>>> round(0.075,2)

0.07

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

0.08
6 trên Plus
def roundTraditional(val,digits):
   return round(val+10**(-len(str(val))-1), digits)
3.

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

def roundTraditional(val,digits):
   return round(val+10**(-len(str(val))-1), digits)
4 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
def roundTraditional(val,digits):
   return round(val+10**(-len(str(val))-1), digits)
5. Tôi có thể chỉ sử dụng
def roundTraditional(val,digits):
   return round(val+10**(-len(str(val))-1), digits)
6 với một
def roundTraditional(val,digits):
   return round(val+10**(-len(str(val))-1), digits)
7 có khả năng để trừ đi
def roundTraditional(val,digits):
   return round(val+10**(-len(str(val))-1), digits)
3 nữa ... nhưng đơn giản hơn khi luôn trừ
def roundTraditional(val,digits):
   return round(val+10**(-len(str(val))-1), digits)
3 vì điều đó sẽ không thay đổi nhiều phạm vi áp dụng số thập phân này có thể xử lý đúng. 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

>>> round(0.075,2)

0.07

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

0.08
5 chỉ xảy ra đối với các giá trị nhất định ở đây. Thanks Blckknght for pointing out that the
>>> round(0.075,2)

0.07

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

0.08
5 fringe case occurs only for certain values here.


Làm thế nào để liệt kê tất cả các tệp theo bảng chữ cái bằng cách sử dụng Python?2 decimals in python. Below are the various methods to accomplish this task:

Chia một số nổi, làm tròn nó thành 2 số thập phân và tính toán phần còn lại trong JavaScript

Làm thế nào để làm tròn cột MySQL với các giá trị float và hiển thị kết quả trong một cột mới?round() function gives a floating point number with a specified number of decimals which is the rounded version of the specified number.

Làm thế nào để chuyển đổi phao sang số nguyên trong Python?

Trong bài viết này, chúng tôi sẽ chỉ cho bạn cách làm tròn số lượng nổi lên tới 2 số thập phân trong Python. Dưới đây là các phương pháp khác nhau để thực hiện nhiệm vụ này:

round(number, digits)

Sử dụng hàm vòng ()

  • Sử dụng hàm định dạng ()- a number that should be rounded

  • Sử dụng mô -đun thập phân- upto the number of decimals to be rounded. 0 is the default.

Thuật toán (bước)

Sau đây là các thuật toán/các bước được tuân thủ để thực hiện nhiệm vụ mong muốn -.

  • Hàm vòng () đưa ra một số điểm nổi với số thập phân được chỉ định là phiên bản tròn của số được chỉ định.

  • Hàm sẽ trả về số nguyên gần nhất vì giá trị mặc định cho số thập phân là 0.number, 2 (decimal value) as arguments to the round() function to round the input number upto the 2 decimal places.

  • Cú pháp2 decimals.

Thí dụ

Chương trình sau đây trả về giá trị tròn của số dấu phẩy động đầu vào lên tới 2 số thập phân bằng mô-đun thập phân-

inputNumber = 3.367824 roundedNumber = round(inputNumber, 2) print("Rounding 3.367824 upto 2 decimal places:", roundedNumber)

Đầu ra

Khi thực hiện, chương trình trên sẽ tạo ra đầu ra sau -

Rounding 3.367824 upto 2 decimal places: 3.37

Làm thế nào để làm tròn cột MySQL với các giá trị float và hiển thị kết quả trong một cột mới?

Thuật toán (bước)

Sau đây là các thuật toán/các bước được tuân thủ để thực hiện nhiệm vụ mong muốn -.

  • Tạo một biến để lưu trữ số điểm nổi đầu vào.

  • Làm thế nào để chuyển đổi phao sang số nguyên trong Python?format() function(It gives back a formatted version of the input value that has been specified by the format specifier) to round the number upto the 2 decimal places by passing the input number, format (upto to the 2 decimals) as arguments to it.

Thí dụ

Chương trình sau đây trả về giá trị tròn của số dấu phẩy động đầu vào lên tới 2 số thập phân bằng hàm định dạng ()

inputNumber = 4.56782 print("Rounding 4.56782 upto 2 decimal places:", format(inputNumber,".2f"))

Đầu ra

Khi thực hiện, chương trình trên sẽ tạo ra đầu ra sau -

Rounding 4.56782 upto 2 decimal places: 4.57

Sử dụng mô -đun thập phân

Mô-đun thập phân của Python giúp tăng độ chính xác của các số điểm nổi. Để sử dụng mô -đun thập phân này, chúng ta phải nhập nó.decimal module helps to increase the accuracy of floating-point numbers. To use this decimal module, we must import it.

decimal.decimal (floatNumber) - đưa ra giá trị thập phân 50 chữ số theo mặc định. − Gives a decimal value of 50 digits as default.

Ở đây chúng tôi sử dụng value.quantize (decimal.decimal (‘0,00,)) để làm tròn tối đa 2 chữ số sau điểm thập phân.value.quantize(decimal.Decimal(‘0.00’)) to round upto 2 digits after the decimal point.

Thuật toán (bước)

Sau đây là các thuật toán/các bước được tuân thủ để thực hiện nhiệm vụ mong muốn -.

  • Sử dụng từ khóa nhập để nhập mô -đun thập phân.

  • Tạo một biến để lưu trữ số điểm nổi đầu vào.

  • Chuyển đổi số điểm nổi đã cho bằng hàm thập phân () của mô-đun thập phân.

  • Làm tròn số lượng tối đa 2 chữ số (ở đây là 2 thập phân. Do đó chúng tôi đưa ra 2 số 0 sau điểm thập phân) sau khi điểm thập phân bằng cách sử dụng giá trị.value.quantize(decimal.Decimal()) function.

  • In số điểm nổi đầu vào

  • In giá trị tròn của số đầu vào cho đến 2 vị trí thập phân.

Thí dụ

Chương trình sau đây trả về giá trị tròn của số dấu phẩy động đầu vào lên tới 2 số thập phân bằng mô-đun thập phân-

import decimal inputNumber = 35.65782 decimalValue = decimal.Decimal(inputNumber) roundedNumber = decimalValue.quantize(decimal.Decimal('0.00')) print("Input floating-point number: ", inputNumber) print("Rounding 35.65782 upto 2 decimal places:", roundedNumber)

Đầu ra

Khi thực hiện, chương trình trên sẽ tạo ra đầu ra sau -

>>> round(0.075,2)

0.07

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

0.08
0

Sử dụng mô -đun thập phân

Thuật toán (bước)

Sau đây là các thuật toán/các bước được tuân thủ để thực hiện nhiệm vụ mong muốn -.

  • Sử dụng từ khóa nhập để nhập mô -đun thập phân.math module.

  • Tạo một biến để lưu trữ số điểm nổi đầu vào.

  • Chuyển đổi số điểm nổi đã cho bằng hàm thập phân () của mô-đun thập phân.ceil() function(returns a ceiling value of the number i.e., the smallest integer greater than or equal to the number), to round the number upto the 2 decimal places and print the resultant number.

>>> round(0.075,2)

0.07

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

0.08
1

Thí dụ

Làm tròn số lượng tối đa 2 chữ số (ở đây là 2 thập phân. Do đó chúng tôi đưa ra 2 số 0 sau điểm thập phân) sau khi điểm thập phân bằng cách sử dụng giá trị.

>>> round(0.075,2)

0.07

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

0.08
2

Đầu ra

Khi thực hiện, chương trình trên sẽ tạo ra đầu ra sau -

>>> round(0.075,2)

0.07

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

0.08
3

Sử dụng mô -đun thập phân

Mô-đun thập phân của Python giúp tăng độ chính xác của các số điểm nổi. Để sử dụng mô -đun thập phân này, chúng ta phải nhập nó.

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

decimal.decimal (floatNumber) - đưa ra giá trị thập phân 50 chữ số theo mặc định.

  • Ở đây chúng tôi sử dụng value.quantize (decimal.decimal (‘0,00,)) để làm tròn tối đa 2 chữ số sau điểm thập phân.
  • Thuật toán (bước)
  • Sau đây là các thuật toán/các bước được tuân thủ để thực hiện nhiệm vụ mong muốn -.
  • Sử dụng từ khóa nhập để nhập mô -đun thập phân.
  • Tạo một biến để lưu trữ số điểm nổi đầu vào.
  • Chuyển đổi số điểm nổi đã cho bằng hàm thập phân () của mô-đun thập phân.
  • Làm tròn số lượng tối đa 2 chữ số (ở đây là 2 thập phân. Do đó chúng tôi đưa ra 2 số 0 sau điểm thập phân) sau khi điểm thập phân bằng cách sử dụng giá trị.
  • In số điểm nổi đầu vào
  • In giá trị tròn của số đầu vào cho đến 2 vị trí thập phân.
  • Chương trình sau đây trả về giá trị tròn của số dấu phẩy động đầu vào lên tới 2 số thập phân bằng mô-đun thập phân-
  • Sử dụng hàm ()
  • Sử dụng từ khóa nhập để nhập mô -đun toán học.
  • Sử dụng hàm trần () (trả về giá trị trần của số, tức là, số nguyên nhỏ nhất lớn hơn hoặc bằng số), để làm tròn số lên đến 2 chữ số thập phân và in số kết quả.
  • Chương trình sau đây trả về giá trị tròn của số dấu phẩy động đầu vào lên tới 2 số thập phân bằng hàm car ()-
  • Sự kết luận
  • Trong bài viết này, chúng tôi đã học được cách làm tròn một số nổi nhất định cho hai vị trí thập phân trong Python bằng bốn phương pháp khác nhau. Sử dụng chức năng trần và một số logic toán học, chúng tôi đã học cách làm tròn đến hai vị trí thập phân. Chúng tôi cũng đã học cách sử dụng mô -đun thập phân để chuyển đổi một số điểm nổi nhất định thành thập phân và định lượng nó.