Locale/Math.php
Zend Framework
LICENSE
This source file is subject to the new BSD license that is bundled
with this package in the file LICENSE.txt.
It is also available through the world-wide-web at this URL:
http://framework.zend.com/license/new-bsd
If you did not receive a copy of the license and are unable to
obtain it through the world-wide-web, please send an email
to license@zend.com so we can send you a copy immediately.
- Category
- Zend
- Copyright
- Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
- License
- New BSD License
- Package
- Zend_Locale
- Version
- $Id$
Package: Zend_LocaleUtility class for proxying math function to bcmath functions, if present,
otherwise to PHP builtin math operators, with limited detection of overflow conditions.
Sampling of PHP environments and platforms suggests that at least 80% to 90% support bcmath.
Thus, this file should be as light as possible.
- Children
- \Zend_Locale_Math_PhpMath
- Category
- Zend
- Copyright
- Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
- License
- New BSD License
Properties



$_bcmathDisabled = falsestatic
Default valuefalseDetails- Type
- n/a



$add = array('Zend_Locale_Math', 'Add')static
Default valuearray('Zend_Locale_Math', 'Add')Details- Type
- n/a



$comp = array('Zend_Locale_Math', 'Comp')static
Default valuearray('Zend_Locale_Math', 'Comp')Details- Type
- n/a



$div = array('Zend_Locale_Math', 'Div')static
Default valuearray('Zend_Locale_Math', 'Div')Details- Type
- n/a



$mod = array('Zend_Locale_Math', 'Mod')static
Default valuearray('Zend_Locale_Math', 'Mod')Details- Type
- n/a



$mul = array('Zend_Locale_Math', 'Mul')static
Default valuearray('Zend_Locale_Math', 'Mul')Details- Type
- n/a



$pow = array('Zend_Locale_Math', 'Pow')static
Default valuearray('Zend_Locale_Math', 'Pow')Details- Type
- n/a



$scale = 'bcscale'static
Default value'bcscale'Details- Type
- n/a



$sqrt = array('Zend_Locale_Math', 'Sqrt')static
Default valuearray('Zend_Locale_Math', 'Sqrt')Details- Type
- n/a



$sub = array('Zend_Locale_Math', 'Sub')static
Default valuearray('Zend_Locale_Math', 'Sub')Details- Type
- n/a
Methods



Add(string $op1, string $op2, integer $scale = null) : stringstaticBCAdd - fixes a problem of BCMath and exponential numbers
Parameters| Name | Type | Description |
|---|
| $op1 | string | |
|---|
| $op2 | string | |
|---|
| $scale | integer | |
|---|
Returns 


Comp(string $op1, string $op2, integer $scale = null) : stringstaticBCComp - fixes a problem of BCMath and exponential numbers
Parameters| Name | Type | Description |
|---|
| $op1 | string | |
|---|
| $op2 | string | |
|---|
| $scale | integer | |
|---|
Returns 


Div(string $op1, string $op2, integer $scale = null) : stringstaticBCDiv - fixes a problem of BCMath and exponential numbers
Parameters| Name | Type | Description |
|---|
| $op1 | string | |
|---|
| $op2 | string | |
|---|
| $scale | integer | |
|---|
Returns 


Mod(string $op1, string $op2) : stringstaticBCMod - fixes a problem of BCMath and exponential numbers
Parameters| Name | Type | Description |
|---|
| $op1 | string | |
|---|
| $op2 | string | |
|---|
Returns 


Mul(string $op1, string $op2, integer $scale = null) : stringstaticBCMul - fixes a problem of BCMath and exponential numbers
Parameters| Name | Type | Description |
|---|
| $op1 | string | |
|---|
| $op2 | string | |
|---|
| $scale | integer | |
|---|
Returns 


Pow(string $op1, string $op2, integer $scale = null) : stringstaticBCPow - fixes a problem of BCMath and exponential numbers
Parameters| Name | Type | Description |
|---|
| $op1 | string | |
|---|
| $op2 | string | |
|---|
| $scale | integer | |
|---|
Returns 


Sqrt(string $op1, integer $scale = null) : stringstaticBCSqrt - fixes a problem of BCMath and exponential numbers
Parameters| Name | Type | Description |
|---|
| $op1 | string | |
|---|
| $scale | integer | |
|---|
Returns 


Sub(string $op1, string $op2, integer $scale = null) : stringstaticBCSub - fixes a problem of BCMath and exponential numbers
Parameters| Name | Type | Description |
|---|
| $op1 | string | |
|---|
| $op2 | string | |
|---|
| $scale | integer | |
|---|
Returns 


exponent(integer $value, integer $scale = null) : stringstaticChanges exponential numbers to plain string numbers
Fixes a problem of BCMath with numbers containing exponents
Parameters| Name | Type | Description |
|---|
| $value | integer | Value to erase the exponent |
|---|
| $scale | integer | (Optional) Scale to use |
|---|
Returns 


floatalize(string $value) : voidstaticConvert a scientific notation to float
Additionally fixed a problem with PHP <= 5.2.x with big integers
Parameters| Name | Type | Description |
|---|
| $value | string | |
|---|



localize(integer $value) : stringstaticLocalizes an input from standard english notation
Fixes a problem of BCMath with setLocale which is PHP related
Parameters| Name | Type | Description |
|---|
| $value | integer | Value to normalize |
|---|
Returns| Type | Description |
|---|
| string | Normalized string without BCMath problems |



normalize(integer $value) : stringstaticNormalizes an input to standard english notation
Fixes a problem of BCMath with setLocale which is PHP related
Parameters| Name | Type | Description |
|---|
| $value | integer | Value to normalize |
|---|
Returns| Type | Description |
|---|
| string | Normalized string without BCMath problems |



round( $op1, $precision = 0) : voidstaticSurprisingly, the results of this implementation of round()
prove better than the native PHP round(). For example, try:
round(639.795, 2);
round(267.835, 2);
round(0.302515, 5);
round(0.36665, 4);
then try:
Zend_Locale_Math::round('639.795', 2);
Parameters| Name | Type | Description |
|---|
| $op1 | | |
|---|
| $precision | | |
|---|