Package freemarker.core
Class ArithmeticEngine.BigDecimalEngine
- java.lang.Object
-
- freemarker.core.ArithmeticEngine
-
- freemarker.core.ArithmeticEngine.BigDecimalEngine
-
- Enclosing class:
- ArithmeticEngine
public static class ArithmeticEngine.BigDecimalEngine extends ArithmeticEngine
This is the default arithmetic engine in FreeMarker. It converts every number it receives intoBigDecimal, then operates on these convertedBigDecimals.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class freemarker.core.ArithmeticEngine
ArithmeticEngine.BigDecimalEngine, ArithmeticEngine.ConservativeEngine
-
-
Field Summary
-
Fields inherited from class freemarker.core.ArithmeticEngine
BIGDECIMAL_ENGINE, CONSERVATIVE_ENGINE, maxScale, minScale, roundingPolicy
-
-
Constructor Summary
Constructors Constructor Description BigDecimalEngine()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Numberadd(java.lang.Number first, java.lang.Number second)intcompareNumbers(java.lang.Number first, java.lang.Number second)java.lang.Numberdivide(java.lang.Number first, java.lang.Number second)java.lang.Numbermodulus(java.lang.Number first, java.lang.Number second)java.lang.Numbermultiply(java.lang.Number first, java.lang.Number second)java.lang.Numbersubtract(java.lang.Number first, java.lang.Number second)java.lang.NumbertoNumber(java.lang.String s)Should be able to parse all FTL numerical literals, Java Double toString results, and XML Schema numbers.-
Methods inherited from class freemarker.core.ArithmeticEngine
setMaxScale, setMinScale, setRoundingPolicy
-
-
-
-
Method Detail
-
compareNumbers
public int compareNumbers(java.lang.Number first, java.lang.Number second)- Specified by:
compareNumbersin classArithmeticEngine
-
add
public java.lang.Number add(java.lang.Number first, java.lang.Number second)- Specified by:
addin classArithmeticEngine
-
subtract
public java.lang.Number subtract(java.lang.Number first, java.lang.Number second)- Specified by:
subtractin classArithmeticEngine
-
multiply
public java.lang.Number multiply(java.lang.Number first, java.lang.Number second)- Specified by:
multiplyin classArithmeticEngine
-
divide
public java.lang.Number divide(java.lang.Number first, java.lang.Number second)- Specified by:
dividein classArithmeticEngine
-
modulus
public java.lang.Number modulus(java.lang.Number first, java.lang.Number second)- Specified by:
modulusin classArithmeticEngine
-
toNumber
public java.lang.Number toNumber(java.lang.String s)
Description copied from class:ArithmeticEngineShould be able to parse all FTL numerical literals, Java Double toString results, and XML Schema numbers. This means these should be parsed successfully, except if the arithmetical engine couldn't support the resulting value anyway (such as NaN, infinite, even non-integers):-123.45,1.5e3,1.5E3,0005,+0,-0,NaN,INF,-INF,Infinity,-Infinity.- Specified by:
toNumberin classArithmeticEngine
-
-