Splunk Search

Rounding Currency to Two Digits After Decimal

msettipane
Splunk Employee
Splunk Employee

I am attempting to round my currency figures to two decimal places whether or not the amount ends with zeros (e.g., $4.00, $0.10); however, it is returning $4 and $0.1.

I am using the following search command: eval cost = "$ " . tostring(round(count*.02, 2), "commas").

Tags (1)
1 Solution

Marklar
Splunk Employee
Splunk Employee

Doing this correctly requires some knowledge about significant figures and precision.

In multiplying by the number .02 (which has 1 significant figure), you limit your result to 1 significant figure. The precision is then set from that result.

What you seem to be looking for is exact arithmetic with a precision of 2. The exact() function forces a number to have maximum sigfigs and precision, while the round() function can force your precision. Assuming that count is a non-negative integer, this solution should work for you:

eval cost = "$ " . tostring(round(count*exact(.02), 2), "commas")

View solution in original post

Marklar
Splunk Employee
Splunk Employee

Doing this correctly requires some knowledge about significant figures and precision.

In multiplying by the number .02 (which has 1 significant figure), you limit your result to 1 significant figure. The precision is then set from that result.

What you seem to be looking for is exact arithmetic with a precision of 2. The exact() function forces a number to have maximum sigfigs and precision, while the round() function can force your precision. Assuming that count is a non-negative integer, this solution should work for you:

eval cost = "$ " . tostring(round(count*exact(.02), 2), "commas")

marco_sulla
Path Finder

IMHO this is completely unexpected and unwanted in the majority of cases. It is supposed this is not a framework for physical calcula...

0 Karma
Got questions? Get answers!

Join the Splunk Community Slack to learn, troubleshoot, and make connections with fellow Splunk practitioners in real time!

Meet up IRL or virtually!

Join Splunk User Groups to connect and learn in-person by region or remotely by topic or industry.

Get Updates on the Splunk Community!

Persistent Queue at TcpOut — One of Splunk's Most Practical Features

Splunk introduced persistent queueing at the tcpout layer as one of the most practical resilience features in ...

Skip the Awkward Silence: Have a .conf-ersation at .conf26

Picture this. You arrive at .conf26 already having your socializing and networking plans mapped out. No ...

Rethinking Zero Trust: From Product Purchases to Logical Control Evidence

Implementing Zero Trust (ZT) across complex environments often falters at the very beginning due to a ...