Hướng dẫn how do you express a decimal as a fraction in python? - làm thế nào để bạn biểu thị một số thập phân dưới dạng một phân số trong python?

Để mở rộng khi Martijn Pieters trả lời tuyệt vời với một tùy chọn bổ sung do sự thiếu chính xác vốn có với những chiếc phao phức tạp hơn. Ví dụ:

>>> f = 0.8857097
>>> f.as_integer_ratio()
(1994440937439217, 2251799813685248)          # mathematically wrong
>>> Fraction(f)
Fraction(1994440937439217, 2251799813685248)  # same result but in a class
>>> Fraction(f).limit_denominator()
Fraction(871913, 984423)                      # still imprecise

Kết quả toán học mong muốn là

>>> Fraction(str(f))
Fraction(8857097, 10000000)
2 có thể đạt được bằng cách đúc vào một chuỗi và sau đó thao túng nó.

Phản hồi chỉnh sửa

Tôi tìm thấy một cách đơn giản hơn nhiều để giải quyết vấn đề chính xác.

>>> Fraction(str(f))
Fraction(8857097, 10000000)

Đúc như một chuỗi cũng cho phép các phiên bản thập phân chính xác

>>> Decimal(f).as_integer_ratio()
(1994440937439217, 2251799813685248)
>>> Decimal(str(f)).as_integer_ratio()
(8857097, 10000000)

Phản hồi ban đầu

def float_to_ratio(flt):
    if int(flt) == flt:        # to prevent 3.0 -> 30/10
        return int(flt), 1
    flt_str = str(flt)
    flt_split = flt_str.split('.')
    numerator = int(''.join(flt_split))
    denominator = 10 ** len(flt_split[1])
    return numerator, denominator

Bây giờ chúng ta hãy kiểm tra nó:

>>> float_to_ratio(f)
(8857097, 10000000)      # mathematically correct

Tôi sẽ lưu ý rằng loại độ chính xác phân số này không được tối ưu hóa và thường sẽ không cần thiết, nhưng để hoàn thiện, nó ở đây. Chức năng này không đơn giản hóa phân số, nhưng bạn có thể thực hiện xử lý bổ sung để giảm nó:

>>> n = 0.5
>>> float_to_ratio(n)
(5, 10)
>>> Fraction(*float_to_ratio(n))
Fraction(1, 2)

Số thập phân có thể được viết ở dạng phân số. Để chuyển đổi một số thập phân thành một phân số, hãy đặt số thập phân trên giá trị vị trí của nó. Ví dụ, trong 0,6, sáu ở vị trí thứ mười, vì vậy chúng tôi đặt 6 trên 10 để tạo phần tương đương, 6/10.

Làm thế nào để bạn biến 0,375 thành một phần?

0,375 có ba số sau thập phân vì vậy, chúng tôi sẽ nhân và chia 0,375 cho 1000. Chúng tôi thấy rằng 375 /1000 không ở dạng thấp nhất là HCF (375,1000) = 125. Do đó, nó được đơn giản hóa hơn 3 / 8 Bằng cách chia tử số và mẫu số 375 /1000 cho 125.

  • Bạn có thể có phân số trong Python?
  • Trong Python, mô -đun phân số hỗ trợ số học số hợp lý. Sử dụng mô -đun này, chúng ta có thể tạo các phân số từ các số nguyên, phao, thập phân và từ một số giá trị và chuỗi số khác. Có một khái niệm về thể hiện phân số. Nó được hình thành bởi một cặp số nguyên làm tử số và mẫu số.
  • Số thập phân có thể được viết ở dạng phân số. Để chuyển đổi một số thập phân thành một phân số, hãy đặt số thập phân trên giá trị vị trí của nó. Ví dụ, trong 0,6, sáu ở vị trí thứ mười, vì vậy chúng tôi đặt 6 trên 10 để tạo phần tương đương, 6/10.

    Làm thế nào để bạn biến 0,375 thành một phần?

    0,375 có ba số sau thập phân vì vậy, chúng tôi sẽ nhân và chia 0,375 cho 1000. Chúng tôi thấy rằng 375 /1000 không ở dạng thấp nhất là HCF (375,1000) = 125. Do đó, nó được đơn giản hóa hơn 3 / 8 Bằng cách chia tử số và mẫu số 375 /1000 cho 125.

    Bạn có thể có phân số trong Python?Fraction Instances : A Fraction instance can be constructed from a pair of integers, from another rational number, or from a string. Fraction instances are hashable, and should be treated as immutable.

    1. Trong Python, mô -đun phân số hỗ trợ số học số hợp lý. Sử dụng mô -đun này, chúng ta có thể tạo các phân số từ các số nguyên, phao, thập phân và từ một số giá trị và chuỗi số khác. Có một khái niệm về thể hiện phân số. Nó được hình thành bởi một cặp số nguyên làm tử số và mẫu số.This requires that numerator and denominator are instances of numbers. Rational and a fraction instance with value = (numerator/denominator) is returned. A zerodivision error is raised if denominator = 0. 

    Python3

    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    3
    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    4
    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    5
    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    6

    Làm thế nào để bạn biến 0,285 thành một phần?

    Giải trình: . 285 hoặc 0,285 là một phần trong ký hiệu thập phân. Vì yếu tố phổ biến duy nhất (khác với 1) trong khoảng từ 285 đến 1000 là 5 để viết 0,285 dưới dạng một phần trong thuật ngữ đơn giản nhất, chúng ta cần chia tử số và mẫu số trong 2851000 cho 5.

    Xem thảo luận

    1. Đầu ra: & nbsp;
    11/35
    5/9
    0
    1. Tính toán dựa trên phân số sử dụng các chức năng khác nhau của mô-đun toán họcThis requires that other_fraction is instance of numbers.Rational and a fraction instance with same value is returned.
    2. >>> Fraction(str(f))
      Fraction(8857097, 10000000)
      
      5
      >>> Fraction(str(f))
      Fraction(8857097, 10000000)
      
      33
      This requires the float instance and a fraction instance with same value is returned. 

    Python3

    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    3
    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    4
    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    5
    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    6

    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    7
    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    39
    1272266894732165/1125899906842624
    9
    >>> Decimal(f).as_integer_ratio()
    (1994440937439217, 2251799813685248)
    >>> Decimal(str(f)).as_integer_ratio()
    (8857097, 10000000)
    
    0
    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    42
    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    43

    1. Đầu ra: & nbsp;
    1272266894732165/1125899906842624
    1. Tính toán dựa trên phân số sử dụng các chức năng khác nhau của mô-đun toán họcThis requires the decimal instance and a fraction instance with same value is returned. 

    Python

    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    3
    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    4
    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    5
    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    6

    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    5
    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    33

    1. Đầu ra: & nbsp;
    113/100
    1. Tính toán dựa trên phân số sử dụng các chức năng khác nhau của mô-đun toán họcThis requires the string or unicode instance  and a fraction instance with same value is returned. Form for this instance : [sign] numerator [‘/’ denominator] Here, sign represents ‘+’ or ‘-’ and numerator and denominator are strings of single digits. 

    Python3

    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    3
    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    4
    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    5
    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    6

    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    7
    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    8
    >>> n = 0.5
    >>> float_to_ratio(n)
    (5, 10)
    >>> Fraction(*float_to_ratio(n))
    Fraction(1, 2)
    
    3
    >>> Decimal(f).as_integer_ratio()
    (1994440937439217, 2251799813685248)
    >>> Decimal(str(f)).as_integer_ratio()
    (8857097, 10000000)
    
    2

    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    7
    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    8
    >>> float_to_ratio(f)
    (8857097, 10000000)      # mathematically correct
    
    5
    >>> Decimal(f).as_integer_ratio()
    (1994440937439217, 2251799813685248)
    >>> Decimal(str(f)).as_integer_ratio()
    (8857097, 10000000)
    
    2

    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    7
    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    8
    11/35
    5/9
    0
    1
    >>> Decimal(f).as_integer_ratio()
    (1994440937439217, 2251799813685248)
    >>> Decimal(str(f)).as_integer_ratio()
    (8857097, 10000000)
    
    2

    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    7
    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    8
    11/35
    5/9
    0
    5
    >>> Decimal(f).as_integer_ratio()
    (1994440937439217, 2251799813685248)
    >>> Decimal(str(f)).as_integer_ratio()
    (8857097, 10000000)
    
    2

    1. Đầu ra: & nbsp;
    8/25
    113/100
    3/7
    1414213/1000000
    1. giới hạn_denominator (max_denominator = 1000000): & nbsp;
      • Phương pháp này rất hữu ích để tìm các xấp xỉ hợp lý với một số điểm nổi nhất định.
      • Mô -đun này tìm thấy và trả về phần gần nhất cho bản thân có mẫu số ở hầu hết Max_denominator.
      • Mô -đun này cũng có thể được sử dụng để trả về tử số của một phân số nhất định ở thuật ngữ thấp nhất bằng cách sử dụng thuộc tính tử số và mẫu số bằng cách sử dụng thuộc tính mẫu số.numerator property and the denominator by using the denominator property.

    Thực hiện các hoạt động toán học trên các phân số

    Python

    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    3
    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    4
    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    5
    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    6

    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    7
    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    8
    1272266894732165/1125899906842624
    3
    >>> Decimal(f).as_integer_ratio()
    (1994440937439217, 2251799813685248)
    >>> Decimal(str(f)).as_integer_ratio()
    (8857097, 10000000)
    
    0
    1272266894732165/1125899906842624
    5
    1272266894732165/1125899906842624
    6__777777777777

    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    7
    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    8
    >>> Decimal(f).as_integer_ratio()
    (1994440937439217, 2251799813685248)
    >>> Decimal(str(f)).as_integer_ratio()
    (8857097, 10000000)
    
    7
    >>> Decimal(f).as_integer_ratio()
    (1994440937439217, 2251799813685248)
    >>> Decimal(str(f)).as_integer_ratio()
    (8857097, 10000000)
    
    0
    113/100
    7
    1272266894732165/1125899906842624
    6
    113/100
    9
    1272266894732165/1125899906842624
    8
    >>> Decimal(f).as_integer_ratio()
    (1994440937439217, 2251799813685248)
    >>> Decimal(str(f)).as_integer_ratio()
    (8857097, 10000000)
    
    7______

    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    7
    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    8
    >>> Decimal(f).as_integer_ratio()
    (1994440937439217, 2251799813685248)
    >>> Decimal(str(f)).as_integer_ratio()
    (8857097, 10000000)
    
    7
    >>> Decimal(f).as_integer_ratio()
    (1994440937439217, 2251799813685248)
    >>> Decimal(str(f)).as_integer_ratio()
    (8857097, 10000000)
    
    0
    113/100
    7
    1272266894732165/1125899906842624
    6____101

    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    7
    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    8
    >>> Decimal(f).as_integer_ratio()
    (1994440937439217, 2251799813685248)
    >>> Decimal(str(f)).as_integer_ratio()
    (8857097, 10000000)
    
    7
    >>> Decimal(f).as_integer_ratio()
    (1994440937439217, 2251799813685248)
    >>> Decimal(str(f)).as_integer_ratio()
    (8857097, 10000000)
    
    0
    113/100
    7
    1272266894732165/1125899906842624
    6____101
    1272266894732165/1125899906842624
    8
    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    15
    >>> Decimal(f).as_integer_ratio()
    (1994440937439217, 2251799813685248)
    >>> Decimal(str(f)).as_integer_ratio()
    (8857097, 10000000)
    
    0
    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    17
    >>> Decimal(f).as_integer_ratio()
    (1994440937439217, 2251799813685248)
    >>> Decimal(str(f)).as_integer_ratio()
    (8857097, 10000000)
    
    2

    Is

    Đầu ra: & nbsp;

    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    0

    giới hạn_denominator (max_denominator = 1000000): & nbsp;

    Python3

    Phương pháp này rất hữu ích để tìm các xấp xỉ hợp lý với một số điểm nổi nhất định.

    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    3
    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    4
    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    5
    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    6

    Mô -đun này tìm thấy và trả về phần gần nhất cho bản thân có mẫu số ở hầu hết Max_denominator.

    Mô -đun này cũng có thể được sử dụng để trả về tử số của một phân số nhất định ở thuật ngữ thấp nhất bằng cách sử dụng thuộc tính tử số và mẫu số bằng cách sử dụng thuộc tính mẫu số.

    Thực hiện các hoạt động toán học trên các phân số

    Python

    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    7
    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    8
    1272266894732165/1125899906842624
    3
    >>> Decimal(f).as_integer_ratio()
    (1994440937439217, 2251799813685248)
    >>> Decimal(str(f)).as_integer_ratio()
    (8857097, 10000000)
    
    0
    1272266894732165/1125899906842624
    5
    1272266894732165/1125899906842624
    6__777777777777

    Đầu ra: & nbsp;

    >>> Fraction(str(f))
    Fraction(8857097, 10000000)
    
    1

    giới hạn_denominator (max_denominator = 1000000): & nbsp;Aditi Gupta. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to . See your article appearing on the GeeksforGeeks main page and help other Geeks. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.


    Làm thế nào để bạn viết một số thập phân như một phân số?

    Số thập phân có thể được viết ở dạng phân số. Để chuyển đổi một số thập phân thành một phân số, hãy đặt số thập phân trên giá trị vị trí của nó. Ví dụ, trong 0,6, sáu ở vị trí thứ mười, vì vậy chúng tôi đặt 6 trên 10 để tạo phần tương đương, 6/10.place the decimal number over its place value. For example, in 0.6, the six is in the tenths place, so we place 6 over 10 to create the equivalent fraction, 6/10.

    Làm thế nào để bạn biến 0,375 thành một phần?

    0,375 có ba số sau thập phân vì vậy, chúng tôi sẽ nhân và chia 0,375 cho 1000. Chúng tôi thấy rằng 375 /1000 không ở dạng thấp nhất là HCF (375,1000) = 125. Do đó, nó được đơn giản hóa hơn 3 /8 Bằng cách chia tử số và mẫu số 375 /1000 cho 125.multiply and divide 0.375 by 1000. We see that 375 / 1000 is not in the lowest form as the HCF (375,1000) = 125. Thus, it is simplified further to 3/8 by dividing the numerator and denominator of 375 / 1000 by 125.

    Bạn có thể có phân số trong Python?

    Trong Python, mô -đun phân số hỗ trợ số học số hợp lý.Sử dụng mô -đun này, chúng ta có thể tạo các phân số từ các số nguyên, phao, thập phân và từ một số giá trị và chuỗi số khác.Có một khái niệm về thể hiện phân số.Nó được hình thành bởi một cặp số nguyên làm tử số và mẫu số.the Fraction module supports rational number arithmetic. Using this module, we can create fractions from integers, floats, decimal and from some other numeric values and strings. There is a concept of Fraction Instance. It is formed by a pair of integers as numerator and denominator.

    Làm thế nào để bạn biến 0,285 thành một phần?

    Giải trình: .285 hoặc 0,285 là một phần trong ký hiệu thập phân.Vì yếu tố phổ biến duy nhất (khác với 1) trong khoảng từ 285 đến 1000 là 5 để viết 0,285 dưới dạng một phần trong thuật ngữ đơn giản nhất, chúng ta cần chia tử số và mẫu số trong 2851000 cho 5.divide numerator and denominator in 2851000 by 5 .