relationalai.std.math.trunc_divide()
trunc_divide(numerator: Number|Producer, denominator: Number|Producer) -> Expression
Performs truncated division of numerator
by denominator
, rounding towards zero and returning a value of the same type as numerator
.
If numerator
or denominator
is a Producer
, trunc_divide()
acts as a filter and removes any non-numeric values from the producer.
Must be called in a rule or query context.
Parameters
Section titled “Parameters”Name | Type | Description |
---|---|---|
numerator | Producer or Python Number object | The numerator of the division. |
denominator | Producer or Python Number object | The denominator of the division. |
Returns
Section titled “Returns”An Expression
object.
Example
Section titled “Example”Use trunc_divide()
to perform division and truncate the result towards zero:
import relationalai as raifrom relationalai.std import math
# =====# SETUP# =====
model = rai.Model("MyModel")Measurement = model.Type("Measurement")
with model.rule(): Measurement.add(id=1).set(value=170.1, divisor=2) Measurement.add(id=2).set(value=-180.5, divisor=2) Measurement.add(id=3).set(value="INVALID", divisor=3) # Non-numeric value
# =======# EXAMPLE# =======
# Set a truncated_result property to the result of trunc_divide for each measurement.with model.rule(): measurement = Measurement() trunc = math.trunc_divide(measurement.value, measurement.divisor) measurement.set(truncated_result=trunc)
# Since trunc_divide() filters out non-numeric values, the truncated_result property# is not set for the measurement with id=3.with model.query() as select: measurement = Measurement() response = select(measurement.id, measurement.truncated_result)
print(response.results)# id truncated_result# 0 1 85.0# 1 2 -90.0# 2 3 NaN