Get the square root of an arbitrary precision number

- « bcscale

- bcsub »

- PHP Manual
- BC Math Functions
- Get the square root of an arbitrary precision number

# bcsqrt

(PHP 4, PHP 5, PHP 7, PHP 8)

bcsqrt — Get the square root of an arbitrary precision number

### Description

bcsqrt(string `$num`, ?int `$scale` = `null`): string

Return the square root of `num`.

### Parameters

`num`

  The operand, as a well-formed BCMath numeric string.

`scale`
  This parameter is used to set the number of digits after the decimal place in the result. If `null`, it will default to the default scale set with bcscale(), or fallback to the value of the `bcmath.scale` INI directive.

### Return Values

Returns the square root as a well-formed BCMath numeric string.

### Errors/Exceptions

This function throws a ValueError in the following cases:

- `num` is not a well-formed BCMath numeric string
- `num` is less than `0`
- `scale` is outside the valid range

### Changelog

Version | Description
--- | ---
8.0.0 | If `num` is not a well-formed BCMath numeric string, or less than `0`, a ValueError is thrown. Previously, `E_WARNING` was raised instead.
8.0.0 | `scale` now needs to be between `0` and `2147483647`; previously, negative scales have been silently treated as `0`.
8.0.0 | `scale` is now nullable.

### Examples

Example #1 bcsqrt() example

    <?php

    echo bcsqrt('2', 3); // 1.414

    ?>

### See Also

- bcpow() - Raise an arbitrary precision number to another
- BcMath\Number::sqrt() - Gets the square root of an arbitrary precision number