Description

Evaluates one or more string expressions, dynamically, from left to right, using BigDecimal precision arithmetic to calculate the values of arbitrary precision arithmetic expressions.

Returns

An object; the result of the evaluations.

Category

Mathematical functionsDynamic evaluation functions

Function syntax

PrecisionEvaluate(string_expression1 [, string_expression2 , ... ])

See also

EvaluateUsing Expressions and Number Signs in the Developing ColdFusion Applications

Parameters

Parameter

Description

string_expression1, string_expression2...

Expressions to evaluate

Usage

The PrecisionEvaluate function lets you calculate arbitrarily long decimal (BigDecimal precision) values. BigDecimal precision arithmetic accepts and generates decimal numbers of any length, and does not use exponential notation. The PrecisionEvaluate function calculates arbitrary precision results only for addition, subtraction, multiplication, and division. If you use any of the following operations, ColdFusion performs normal integer or floating point arithmetic and does not return BigDecimal values.

  • exponentiation (^)
  • modulus (MOD or %)
  • integer division (tick)
    This function differs from the Evaluatefunction only in its use of BigDecimal precision arithmetic to calculate numeric values; otherwise the two functions are identical. The results of an evaluation on the left can have meaning in an expression to the right, and the function returns the result of evaluating the rightmost expression. If a string expression contains a single- or double-quotation mark, the mark must be escaped.If an expression, such as 1/3, results in an infinitely repeating decimal value, ColdFusion limits the decimal part to 20 digits.

    Note: To increase processing efficiency, do not put the arithmetic expressions to evaluate in quotation marks ("). ColdFusion compiles PrecisionEvaluate(a*b) more efficiently than it compiles PrecisionEvaluate("a*b"), although both formats produce the same results.

Example

<cfscript>
    num1=5
    num2=(3/8)
    writeOutput("The resultant expression is: " & precisionEvaluate(num1/num2))
</cfscript>

Output

The resultant expression is: 13.33333333333333333333

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License  Twitter™ and Facebook posts are not covered under the terms of Creative Commons.

Legal Notices   |   Online Privacy Policy