Skip to content

Rounding up Amounts via the Math Function

Purpose

This function returns the smallest (closest to negative infinity) double value that is greater than or equal to the p1 argument, and is equal to a mathematical integer. This function wraps the java.lang.Math.ceil() method.

Prerequisites

  • Save this sample. If there is no syntax error, the following messages would be shown on the console
    • Siddhi App MathExtensionSample successfully deployed.

Executing the Sample

  1. Start the Siddhi application by clicking on 'Run'
  2. If the Siddhi application starts successfully, the following messages would be shown on the console
    • MathExtensionSample.siddhi - Started Successfully!

Testing the Sample

You can publish data event to the file, through event simulator 1. Open event simulator by clicking on the second icon or press Ctrl+Shift+I. 2. In the Single Simulation tab of the panel, select values as follows: * Siddhi App Name : MathExtensionSample * Stream Name : SweetProductionStream 3. Enter following values in the fields and send * name: chocolate cake * amount: 50.50 4. Enter following values in the fields and send * name: coffee cake * amount: 50.30

Viewing the Results

Messages similar to the following would be shown on the console.\

INFO {io.siddhi.core.query.processor.stream.LogStreamProcessor} - MathExtensionSample: Event :, StreamEvent{ timestamp=1513381581963, beforeWindowData=null, onAfterWindowData=null, outputData=[chocolate cake, 51.0], type=CURRENT, next=null}\

INFO {io.siddhi.core.query.processor.stream.LogStreamProcessor} - MathExtensionSample: Event :, StreamEvent{ timestamp=1513381917721, beforeWindowData=null, onAfterWindowData=null, outputData=[chocolate cake, 51.0], type=CURRENT, next=null}

@App:name("MathExtensionSample")

@App:description('Rounds up the sweets amount')


define stream SweetProductionStream (name string, amount double);

@sink(type='log')
define stream AmountCorrectionStream(name string, amount double);

from SweetProductionStream
select name, math:ceil(amount) as amount
insert into AmountCorrectionStream;