Why is Excel telling me the GCD of 1.13*100 and 100 is 4?

  • Thread starter Thread starter SamRoss
  • Start date Start date
  • Tags Tags
    Excel Gcd
Click For Summary
SUMMARY

In Microsoft Excel, the formula =GCD(1.13*100,100) returns 4 due to the way floating-point numbers are stored, causing 1.13*100 to be slightly less than 113. This discrepancy leads Excel to truncate the value to 112, resulting in GCD(112, 100) = 4. To resolve this issue, users can apply the int() function to convert the float to an integer, ensuring accurate GCD calculations.

PREREQUISITES
  • Understanding of Microsoft Excel formulas and functions
  • Familiarity with floating-point number representation
  • Knowledge of the GCD function syntax in Excel
  • Basic proficiency in using Excel functions like int()
NEXT STEPS
  • Learn about floating-point precision issues in programming
  • Explore the GCD function in Excel with various data types
  • Investigate the int() function and its applications in Excel
  • Research best practices for handling numerical data in Excel
USEFUL FOR

Excel users, data analysts, and anyone dealing with numerical calculations in spreadsheets who need to understand floating-point behavior and GCD function nuances.

SamRoss
Gold Member
Messages
256
Reaction score
36
In Microsoft Excel, if I type in the formula =GCD(113,100) then it gives me the correct answer of 1. However, if I type in =GCD(1.13*100,100), which means the same thing, it tells me 4. What's going on and how can I fix it? Thanks
 
Technology news on Phys.org
I think it’s due to the 1.13*100 being treated as a float ie it’s not the same as the integer value 113.

You could test this by using the int() function on 1.13*100 to see if that fixes it.
 
  • Like
Likes   Reactions: WWGD and sysprog
jedishrfu said:
I think it’s due to the 1.13*100 being treated as a float ie it’s not the same as the integer value 113.

You could test this by using the int() function on 1.13*100 to see if that fixes it.
That fixed it. Thanks!
 
SamRoss said:
In Microsoft Excel, if I type in the formula =GCD(113,100) then it gives me the correct answer of 1. However, if I type in =GCD(1.13*100,100), which means the same thing, it tells me 4. What's going on and how can I fix it? Thanks
Here's the documentation for the gcd function in Excel:
GCD(number1, [number2], ...)
The GCD function syntax has the following arguments:
  • Number1, number2, ... Number1 is required, subsequent numbers are optional. 1 to 255 values. If any value is not an integer, it is truncated.
Due to the way that floating point numbers are stored, the value 1.13*100 turns out to be a little less than 113. This is true of computers in general, and isn't some bug in Excel. You can verify this by the formula
Code:
-(1.13*100 - 113)*10^6
The actual difference between 1.13*100 and 113 is so small that it is displayed as 0, but if you multiply this difference by, say, 10^6, you will get -1.42109*10^(-8).
Since 1.13*100 < 113, according to the docs above, it is truncated, leaving the integer value 112. Certainly gcd(112, 100) = 4
 
Last edited:
  • Like
Likes   Reactions: WWGD, SamRoss, Ibix and 1 other person

Similar threads

Replies
27
Views
4K
  • · Replies 27 ·
Replies
27
Views
5K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 7 ·
Replies
7
Views
2K
  • · Replies 7 ·
Replies
7
Views
3K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 20 ·
Replies
20
Views
2K
  • · Replies 22 ·
Replies
22
Views
3K
  • · Replies 5 ·
Replies
5
Views
6K
  • · Replies 3 ·
Replies
3
Views
4K