2.5.4.28 Div
The Div function performs a division calculation.
ABNF:
-
Div = val val " _DIV():128"
Required Arguments:
Name: Arg1
Type: vDoubleEx
An argument that specifies the first operand of the division operation.
Name: Arg2
Type: vDoubleEx
An argument that specifies the second operand of the division operation.
Return Value:
This function returns a vNum or a PtgCy containing the result of Arg1 divided by Arg2. The type of the return value is calculated by the following algorithm.
SET returnType = PtgNum
SET returnError = #VALUE!
SET returnDimension = 0
SET returnCurrencyID = 0
IF Arg2.Value = 0 THEN
SET returnType = PtgErr
SET returnError = #DIV/0
ELSE IF Arg1.Type = PtgCy AND Arg2.Type != PtgCy THEN
SET returnType = PtgCy
SET returnCurrencyID = currencyID of Arg1
ELSE IF Arg1.Type != PtgCy AND Arg2.Type = PtgCy THEN
SET returnType = PtgCy
SET returnCurrencyID = currencyID of Arg2
ELSE IF Arg1.Type = PtgCy AND Arg2.Type = PtgCy THEN
SET returnType = PtgCy
IF currencyID of Arg1 = currencyID of Arg2 OR currencyID of Arg2 = 1 THEN
SET returnCurrencyID = currencyID of Arg1
ELSE IF currencyID of Arg1 = 1 THEN
SET returnCurrencyID = currencyID of Arg2
ELSE
SET returnType = PtgErr
SET returnError = #VALUE!
END IF
ELSE IF Arg1.Unit is a vUnitTypeAND Arg2.Unit is not a vUnitType THEN
SET returnType = Arg1.Unit
SET returnDimension = Arg1.Dimension
ELSE IF Arg1.Unit is not a vUnitType AND Arg2.Unit is a vUnitType THEN
SET returnType = Arg2.Unit
SET returnDimension = Arg2.Dimension
ELSE
IF Arg1.Unit = PtgNumPctAND Arg2.Unit = PtgNumPct THEN
SET returnDimension = 1
ELSE IF Arg1.Unit = PtgNumPct THEN
SET returnDimension = -Arg2.Dimension
ELSE IF Arg2.Unit = PtgNumPct THEN
SET returnDimension = Arg1.Dimension
ELSE
SET returnDimension = Arg1.Dimension – Arg2.Dimension
END IF
IF Arg1.Unit is a vUnitType THEN
SET returnType = Arg1.Unit
ELSE
SET returnType = Arg2.Unit
END IF
END IF
IF returnType = PtgCy THEN
Return type is PtgCy with currencyID = returnCurrencyID
ELSE IF returnType = PtgErr THEN
Return type is PtgErr with error code of returnError
ELSE IF (returnType = PtgAcreOR returnType = PtgHectare) AND returnDimension != 2 THEN
Return type is PtgNumMultiDimwith unit = PtgNumDftand dimension = returnDimension
ELSE IF returnDimension = 0 THEN
Return type is PtgNum
ELSE IF returnDimension = 1 THEN
Return type is returnType
ELSE
Return type is PtgNumMultiDim with unit = returnType and dimension = returnDimension
END IF