##### Why is 2/3 not just .666 repeating?
 Why is 2/3 not just .666 repeating? DocFro Unladen Swallow Posts: 2 Threads: 1 Joined: Nov 2023 Reputation: Nov-25-2023, 10:09 PM Hey I'm learning python now and was just learning formatting in my online class. When I ran the following code I got the following output. I thought 2/3 was always .666 repeating. Is this not the case? or can someone explain the output to me. Code: print("{0:1.54}".format(2/3)) Output: 0.66666666666666662965923251249478198587894439697265625 Reply Posts: 4,594 Threads: 71 Joined: Jan 2018 Reputation: Nov-25-2023, 10:41 PM (This post was last modified: Nov-25-2023, 10:41 PM by Gribouillis.) Python floats are normally represented as 64 bits binary numbers, which means that they cannot represent faithfully more than 16 decimal digits. To see the capabilities of your Python print `sys.float_info`Also see the following example shows that python cannot tell the difference between 2/3 and 2/3 truncated to 16 digits ```>>> x = 2/3 >>> f"{x:.16}" '0.6666666666666666' >>> >>> x == float(f"{x:.15}") False >>> x == float(f"{x:.16}") True >>> ```Note: this is not a limitation of Python alone, most usual programming languages use the same floating numbers. Specialized libraries such as gmpy2 handle multiprecision floating numbers with any number of digits. DocFro and RockBlok like this post Reply DocFro Unladen Swallow Posts: 2 Threads: 1 Joined: Nov 2023 Reputation: Nov-26-2023, 12:59 AM Ah that explains it. Thank you! Reply loben Unladen Swallow Posts: 1 Threads: 0 Joined: Dec 2023 Reputation: Dec-12-2023, 08:48 AM (This post was last modified: Dec-12-2023, 09:06 AM by buran.) To achieve the expected decimal representation of 2/3 with a precision of 54 decimal places, you can use the decimal module in Python, which provides decimal arithmetic for higher precision. Here's an example: ```from decimal import Decimal result = Decimal(2) / Decimal(3) print("{0:1.54}".format(result))```This will give you the desired output: ``Output:0.66666666666666666666666666666666666666666666666666667``By using the Decimal type and the decimal module, you can perform calculations with higher precision and avoid some of the limitations of floating-point arithmetic. However, keep in mind that working with decimal numbers at very high precision can significantly impact performance and memory usage, so it's important to use it judiciously when necessary. buran write Dec-12-2023, 09:06 AM:Please, use proper tags when post code, traceback, output, etc. This time I have added tags for you. See BBcode help for more info. Reply Posts: 8,089 Threads: 154 Joined: Sep 2016 Reputation: Dec-12-2023, 09:09 AM If you can't explain it to a six year old, you don't understand it yourself, Albert Einstein How to Ask Questions The Smart Way: link and another link Create MCV example Debug small programs Reply

 Possibly Related Threads… Thread Author Replies Views Last Post repeating a user_input astral_travel 17 2,628 Oct-26-2022, 04:15 PM Last Post: astral_travel if else repeating Frankduc 12 2,832 Jul-14-2022, 12:40 PM Last Post: Frankduc factorial, repeating Aldiyar 4 2,944 Sep-01-2020, 05:22 PM Last Post: DPaul Repeating equations Tbot100 2 3,383 May-29-2019, 02:38 AM Last Post: heiner55 repeating for loop Kaldesyvon 5 3,988 Dec-06-2018, 08:00 PM Last Post: ichabod801

Forum Jump:

### User Panel Messages

##### Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020