#### Wiki source for KeyPgSqr

Show raw source

{{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"}}