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-2011 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) : string

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) : string

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) : string

Parameters

$op1

string

$op2

string

$scale

integer

Returns

string

BCMod - fixes a problem of BCMath and exponential numbers

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

Parameters

$op1

string

$op2

string

Returns

string

BCMul - fixes a problem of BCMath and exponential numbers

Mul(string $op1, string $op2, integer $scale) : string

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) : string

Parameters

$op1

string

$op2

string

$scale

integer

Returns

string

BCSqrt - fixes a problem of BCMath and exponential numbers

Sqrt(string $op1, integer $scale) : string

Parameters

$op1

string

$scale

integer

Returns

string

BCSub - fixes a problem of BCMath and exponential numbers

Sub(string $op1, string $op2, integer $scale) : string

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) : string

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) 

Parameters

$value

string

isBcmathDisabled()

isBcmathDisabled() 

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

localize(integer $value) : string

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

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) 

Parameters

$op1

$precision

 Properties

 

$_bcmathDisabled

$_bcmathDisabled 

 

$add

$add 

 

$comp

$comp 

 

$div

$div 

 

$mod

$mod 

 

$mul

$mul 

 

$pow

$pow 

 

$scale

$scale 

 

$sqrt

$sqrt 

 

$sub

$sub