# BCMath Arbitrary Precision Mathematics Functions

## Introduction

For arbitrary precision mathematics PHP offers the Binary Calculator which supports numbers of any size and precision, represented as strings.

## Requirements

Since PHP 4.0.4, libbcmath is bundled with PHP. You don't need any external libraries for this extension.

## Installation

These functions are only available if PHP was
configured with --enable-bcmath.
In PHP 3, these functions are only available if PHP was *not*
configured with --disable-bcmath.

The windows version of PHP has built in support for this extension. You do not need to load any additional extension in order to use these functions.

## Runtime Configuration

The behaviour of these functions is affected by settings in `php.ini`.

Name | Default | Changeable | Changelog |
---|---|---|---|

bcmath.scale | "0" | PHP_INI_ALL |

Here's a short explanation of the configuration directives.

## Resource Types

This extension has no resource types defined.

## Predefined Constants

This extension has no constants defined.

## Table of Contents

- bcadd â€” Add two arbitrary precision numbers
- bccomp â€” Compare two arbitrary precision numbers
- bcdiv â€” Divide two arbitrary precision numbers
- bcmod â€” Get modulus of an arbitrary precision number
- bcmul â€” Multiply two arbitrary precision number
- bcpow â€” Raise an arbitrary precision number to another
- bcpowmod â€” Raise an arbitrary precision number to another, reduced by a specified modulus
- bcscale â€” Set default scale parameter for all bc math functions
- bcsqrt â€” Get the square root of an arbitrary precision number
- bcsub â€” Subtract one arbitrary precision number from another