Class 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 into BigDecimal, then operates on these converted BigDecimals.
    • Constructor Detail

      • BigDecimalEngine

        public BigDecimalEngine()
    • Method Detail

      • compareNumbers

        public int compareNumbers​(java.lang.Number first,
                                  java.lang.Number second)
        Specified by:
        compareNumbers in class ArithmeticEngine
      • add

        public java.lang.Number add​(java.lang.Number first,
                                    java.lang.Number second)
        Specified by:
        add in class ArithmeticEngine
      • subtract

        public java.lang.Number subtract​(java.lang.Number first,
                                         java.lang.Number second)
        Specified by:
        subtract in class ArithmeticEngine
      • multiply

        public java.lang.Number multiply​(java.lang.Number first,
                                         java.lang.Number second)
        Specified by:
        multiply in class ArithmeticEngine
      • divide

        public java.lang.Number divide​(java.lang.Number first,
                                       java.lang.Number second)
        Specified by:
        divide in class ArithmeticEngine
      • modulus

        public java.lang.Number modulus​(java.lang.Number first,
                                        java.lang.Number second)
        Specified by:
        modulus in class ArithmeticEngine
      • toNumber

        public java.lang.Number toNumber​(java.lang.String s)
        Description copied from class: ArithmeticEngine
        Should 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:
        toNumber in class ArithmeticEngine