Utility 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.

category Zend
package Zend_Locale
copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
license New BSD License

 Methods

BCAdd - fixes a problem of BCMath and exponential numbers

Add(string $op1, string $op2, integer $scale = null) : string
Static

Parameters

$op1

string

$op2

string

$scale

integer

Returns

string

BCComp - fixes a problem of BCMath and exponential numbers

Comp(string $op1, string $op2, integer $scale = null) : string
Static

Parameters

$op1

string

$op2

string

$scale

integer

Returns

string

BCDiv - fixes a problem of BCMath and exponential numbers

Div(string $op1, string $op2, integer $scale = null) : string
Static

Parameters

$op1

string

$op2

string

$scale

integer

Returns

string

BCMod - fixes a problem of BCMath and exponential numbers

Mod(string $op1, string $op2) : string
Static

Parameters

$op1

string

$op2

string

Returns

string

BCMul - fixes a problem of BCMath and exponential numbers

Mul(string $op1, string $op2, integer $scale = null) : string
Static

Parameters

$op1

string

$op2

string

$scale

integer

Returns

string

BCPow - fixes a problem of BCMath and exponential numbers

Pow(string $op1, string $op2, integer $scale = null) : string
Static

Parameters

$op1

string

$op2

string

$scale

integer

Returns

string

BCSqrt - fixes a problem of BCMath and exponential numbers

Sqrt(string $op1, integer $scale = null) : string
Static

Parameters

$op1

string

$scale

integer

Returns

string

BCSub - fixes a problem of BCMath and exponential numbers

Sub(string $op1, string $op2, integer $scale = null) : string
Static

Parameters

$op1

string

$op2

string

$scale

integer

Returns

string

Changes exponential numbers to plain string numbers Fixes a problem of BCMath with numbers containing exponents

exponent(integer $value, integer $scale = null) : string
Static

Parameters

$value

integer

Value to erase the exponent

$scale

integer

(Optional) Scale to use

Returns

string

Convert a scientific notation to float Additionally fixed a problem with PHP <= 5.2.x with big integers

floatalize(string $value) 
Static

Parameters

$value

string

isBcmathDisabled()

isBcmathDisabled() 
Static

Localizes an input from standard english notation Fixes a problem of BCMath with setLocale which is PHP related

localize(integer $value) : string
Static

Parameters

$value

integer

Value to normalize

Returns

stringNormalized string without BCMath problems

Normalizes an input to standard english notation Fixes a problem of BCMath with setLocale which is PHP related

normalize(integer $value) : string
Static

Parameters

$value

integer

Value to normalize

Returns

stringNormalized string without BCMath problems

Surprisingly, 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);

round($op1, $precision = 0
Static

Parameters

$op1

$precision

 Properties

 

$_bcmathDisabled

$_bcmathDisabled 

Default

false
Static
 

$add

$add 

Default

array('Zend_Locale_Math', 'Add')
Static
 

$comp

$comp 

Default

array('Zend_Locale_Math', 'Comp')
Static
 

$div

$div 

Default

array('Zend_Locale_Math', 'Div')
Static
 

$mod

$mod 

Default

array('Zend_Locale_Math', 'Mod')
Static
 

$mul

$mul 

Default

array('Zend_Locale_Math', 'Mul')
Static
 

$pow

$pow 

Default

array('Zend_Locale_Math', 'Pow')
Static
 

$scale

$scale 

Default

'bcscale'
Static
 

$sqrt

$sqrt 

Default

array('Zend_Locale_Math', 'Sqrt')
Static
 

$sub

$sub 

Default

array('Zend_Locale_Math', 'Sub')
Static