Difference between revisions of "Talk:Square root"

From Kolmafia
Jump to navigation Jump to search
imported>Heeheehee
m (Created page with 'It won't truncate -- integer truncation only occurs when you have one integer divided by another. If one of the two terms is a float, then the other will be automatically convert…')
 
imported>StDoodle
Line 1: Line 1:
 
It won't truncate -- integer truncation only occurs when you have one integer divided by another. If one of the two terms is a float, then the other will be automatically converted to a float before performing the operation. --[[User:Heeheehee|Heeheehee]] 17:43, 26 June 2010 (UTC)
 
It won't truncate -- integer truncation only occurs when you have one integer divided by another. If one of the two terms is a float, then the other will be automatically converted to a float before performing the operation. --[[User:Heeheehee|Heeheehee]] 17:43, 26 June 2010 (UTC)
 +
 +
It can be a bit confusing for some. square_root() works a little differently than most math operations. For example:
 +
 +
float f; f = 5 / 2;
 +
 +
will return 2.0
 +
 +
This is, of course, because the operation has only integers to use, and thus computes an integer result; THEN it converts this to a float. If either of the two numbers is a float (ie "5.0 / 2" or "5 / 2.0") the result would be 2.5, as "expected," because when two different datatypes are used, an implicit conversion to the most precise type is the norm. So it is a bit "unexpected" that square_root() will accept an int, and make an automatic float conversion. We should probably note this somewhere... --[[User:StDoodle|StDoodle (#1059825)]] 15:32, 29 June 2010 (UTC)

Revision as of 15:32, 29 June 2010

It won't truncate -- integer truncation only occurs when you have one integer divided by another. If one of the two terms is a float, then the other will be automatically converted to a float before performing the operation. --Heeheehee 17:43, 26 June 2010 (UTC)

It can be a bit confusing for some. square_root() works a little differently than most math operations. For example:

float f; f = 5 / 2;

will return 2.0

This is, of course, because the operation has only integers to use, and thus computes an integer result; THEN it converts this to a float. If either of the two numbers is a float (ie "5.0 / 2" or "5 / 2.0") the result would be 2.5, as "expected," because when two different datatypes are used, an implicit conversion to the most precise type is the norm. So it is a bit "unexpected" that square_root() will accept an int, and make an automatic float conversion. We should probably note this somewhere... --StDoodle (#1059825) 15:32, 29 June 2010 (UTC)