{{fbdoc item="title" value="SQR"}}---- Returns a square root of a number {{fbdoc item="syntax"}}## [[KeyPgDeclare|declare]] [[KeyPgFunction|function]] **Sqr** ( [[KeyPgByval|byval]] //number// [[KeyPgAs|as]] [[KeyPgDouble|double]] ) [[KeyPgAs|as]] [[KeyPgDouble|double]] ## {{fbdoc item="usage"}}## result = **Sqr**( //number// ) ## {{fbdoc item="param"}} ##//number//## the number (greater than or equal to zero) {{fbdoc item="ret"}} Returns the square root of the argument ##//number//##. If ##//number//## equals zero, ##**Sqr**## returns zero (##0.0##). If ##//number//## is less than zero, ##**Sqr**## returns a special value representing "not defined", printing like "##""NaN""##" or ##"IND"##, exact text is platform dependent. {{fbdoc item="desc"}} This is the same as raising the argument ##//number//## to the one-half power: ##//y// = //x// [[KeyPgOpExponentiate|^]] (1/2)## . The required ##//number//## argument can be any valid numeric expression greater than or equal zero. If a ##[[KeyPgLongint|Longint]]## or ##[[KeyPgUlongint|ULongint]]## is passed to ##**Sqr**##, it may be converted to ##[[KeyPgDouble|Double]]## precision first. For numbers over ##2^52##, this will cause a very small loss of precision. Without making any assumptions about the rounding method, the maximum error due to this will be ##**Sqr**(2^64) - **Sqr**(2^64-2^12)##, which is about ##4.8e-7##. However this may cause erroneous results if the floor or ceiling of this value is taken, and the result of this may be out by ##1##, particularly for square numbers and numbers that are close by. ##**Sqr**## can be overloaded as operator to accept user-defined types. {{fbdoc item="ex"}} {{fbdoc item="filename" value="examples/manual/math/sqr.bas"}}%%(freebasic) '' Example of Sqr function: Pythagorean theorem Dim As Single a, b Print "Pythagorean theorem, right-angled triangle" Print Input "Please enter one leg side length: ", a Input "Please enter the other leg side length: ", b Print Print "The hypotenuse has a length of: " & Sqr( a * a + b * b ) %% The output would look like: %% Pythagorean theorem, right-angled triangle Please enter one leg side length: 1.5 Please enter the other leg side length: 2 The hypotenuse has a length of: 2.5 %% {{fbdoc item="diff"}} - None {{fbdoc item="see"}} - ##[[KeyPgOpExponentiate|Operator ^ (Exponentiate)]]## - [[CatPgMath|Arithmetic Operators]] {{fbdoc item="back" value="CatPgMath|Math"}}