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.
This file should only be loaded for the 10% to 20% lacking access to the bcmath extension.
| 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
Inherited
| inherited_from |
\Zend_Locale_Math::exponent() |
Parameters
$value
integerValue 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)
Inherited
| inherited_from |
\Zend_Locale_Math::floatalize() |
Parameters
$value
string
isBcmathDisabled()
isBcmathDisabled()
Inherited
| inherited_from |
\Zend_Locale_Math::isBcmathDisabled() |
Localizes an input from standard english notation
Fixes a problem of BCMath with setLocale which is PHP related
localize(integer $value) : string
Inherited
| inherited_from |
\Zend_Locale_Math::localize() |
Parameters
$value
integerValue 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
Inherited
| inherited_from |
\Zend_Locale_Math::normalize() |
Parameters
$value
integerValue 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)
Inherited
| inherited_from |
\Zend_Locale_Math::round() |
Parameters
$op1
$precision
Properties
$_bcmathDisabled
$_bcmathDisabled
Inherited
| inherited_from |
\Zend_Locale_Math::$$_bcmathDisabled |
$add
$add
Inherited
| inherited_from |
\Zend_Locale_Math::$$add |
$comp
$comp
Inherited
| inherited_from |
\Zend_Locale_Math::$$comp |
$defaultPrecision
$defaultPrecision
$defaultScale
$defaultScale
$div
$div
Inherited
| inherited_from |
\Zend_Locale_Math::$$div |
$mod
$mod
Inherited
| inherited_from |
\Zend_Locale_Math::$$mod |
$mul
$mul
Inherited
| inherited_from |
\Zend_Locale_Math::$$mul |
$pow
$pow
Inherited
| inherited_from |
\Zend_Locale_Math::$$pow |
$scale
$scale
Inherited
| inherited_from |
\Zend_Locale_Math::$$scale |
$sqrt
$sqrt
Inherited
| inherited_from |
\Zend_Locale_Math::$$sqrt |
$sub
$sub
Inherited
| inherited_from |
\Zend_Locale_Math::$$sub |