* (times)


Return type:
The product of its operands.
numeric-expression * numeric-expression


You can multiply two numeric values together using the * operator.

To multiply BCD numbers, you must import the ombcd.xmd file in your program. To multiply floating point numbers, import the omfloat.xmd file.

You can multiply values of mixed data types (for example, BCD numbers and integers) as long as you follow the rules listed in Operations with mixed data types.

Always surround arithmetic operators with spaces.

BCD Example:

  ; Distance = speed * time
     import "ombcd.xmd" unprefixed
        local bcd kilometers-per-hour initial {90}
        local bcd hours initial {1.5}
        local bcd distance
        set distance to kilometers-per-hour * hours
        output "Distance is " 
            || "d" % distance
            || " kilometers.%n"
  ; Output: 'Distance is 135 kilometers'.

Floating Point Example:

  ; E = IR (volts = amperes * ohms)
    import "omfloat.xmd" unprefixed
        local float amperes initial {1.9237}
        local float ohms initial {60}
        local float volts
        set volts to amperes * ohms
        output "Volts = " 
            || "d" % volts
            || "%n"
  ; Output: 'Volts = 115.422'

Mixed Data Type Example:

  import "ombcd.xmd" unprefixed
      local integer apples-per-child initial {6}
      local integer school-children initial {28}
      local integer total-apples
      local bcd apple-price
      local bcd tax-rate
      local bcd total-price
      set total-apples to apples-per-child * school-children
      output "Total apples = " 
                  || "d" % total-apples
                  || "%n"
      set apple-price to 0.33
      set tax-rate to 0.05
      set total-price to total-apples * apple-price * (1 + tax-rate) 
      output "Total price = " 
                  || "<$,NNZ.ZZ>" % total-price
                  || "%n"
  ; Output: 'Total apples = 168'
  ;          'Total price = $58.21'

The word times is a deprecated synonym for *.

For floating point numbers, overflow and underflow values return infinity and zero, respectively.

BCD numbers cannot overflow, but returns 0 on underflow.

Integers cannot underflow, but overflow returns an incorrect answer depending on the operating system.

Related Syntax
Related Concepts