Để 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.
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.
- 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]
6Là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
- Đầu ra: & nbsp;
11/35 5/9 0
- 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.
5>>> Fraction[str[f]] Fraction[8857097, 10000000]
33This requires the float instance and a fraction instance with same value is returned.>>> Fraction[str[f]] Fraction[8857097, 10000000]
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]
391272266894732165/11258999068426249
>>> 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- Đầu ra: & nbsp;
1272266894732165/1125899906842624
- 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- Đầu ra: & nbsp;
113/100
- 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]
811/35 5/9 01
>>> 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]
811/35 5/9 05
>>> Decimal[f].as_integer_ratio[]
[1994440937439217, 2251799813685248]
>>> Decimal[str[f]].as_integer_ratio[]
[8857097, 10000000]
2- Đầu ra: & nbsp;
8/25 113/100 3/7 1414213/1000000
- 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]
81272266894732165/11258999068426243
>>> Decimal[f].as_integer_ratio[]
[1994440937439217, 2251799813685248]
>>> Decimal[str[f]].as_integer_ratio[]
[8857097, 10000000]
01272266894732165/11258999068426245
1272266894732165/11258999068426246__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]
0113/1007
1272266894732165/11258999068426246
113/1009
1272266894732165/11258999068426248
>>> 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]
0113/1007
1272266894732165/11258999068426246____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]
0113/1007
1272266894732165/11258999068426246____101
1272266894732165/11258999068426248
>>> 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]
2Is
Đầu ra: & nbsp;
>>> Fraction[str[f]]
Fraction[8857097, 10000000]
0giớ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]
6Mô -đ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]
81272266894732165/11258999068426243
>>> Decimal[f].as_integer_ratio[]
[1994440937439217, 2251799813685248]
>>> Decimal[str[f]].as_integer_ratio[]
[8857097, 10000000]
01272266894732165/11258999068426245
1272266894732165/11258999068426246__777777777777
Đầu ra: & nbsp;
>>> Fraction[str[f]]
Fraction[8857097, 10000000]
1giớ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.