Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Neo4j & Cypher: Rounding a Float Value to Decimal Places

DZone's Guide to

Neo4j & Cypher: Rounding a Float Value to Decimal Places

· Java Zone
Free Resource

Build vs Buy a Data Quality Solution: Which is Best for You? Gain insights on a hybrid approach. Download white paper now!

About 6 months ago, Jacqui Read created a github issue explaining how she wanted to round a float value to a number of decimal places but was unable to do so due to the round function not taking the appropriate parameter.

I found myself wanting to do the same thing last week where I initially had the following value:

RETURN toFloat("12.336666") AS value

I wanted to round that to 2 decimal places and Wes suggested multiplying the value before using ROUND and then dividing afterwards to achieve that.

For two decimal places we need to multiply and divide by 100:

WITH toFloat("12.336666") AS value
RETURN round(100 * value) / 100 AS value
12.34

Michael suggested abstracting the number of decimal places like so:

WITH 2 as precision
WITH toFloat("12.336666") AS value, 10^precision AS factor
RETURN round(factor * value)/factor AS value

If we want to round to 4 decimal places we can easily change that:

WITH 4 as precision
WITH toFloat("12.336666") AS value, 10^precision AS factor
RETURN round(factor * value)/factor AS value
12.3367

The code is available as a graph gist too if you want to play around with it. And you may as well check out the other gists while you’re at it – enjoy!

Build vs Buy a Data Quality Solution: Which is Best for You? Maintaining high quality data is essential for operational efficiency, meaningful analytics and good long-term customer relationships. But, when dealing with multiple sources of data, data quality becomes complex, so you need to know when you should build a custom data quality tools effort over canned solutions. Download our whitepaper for more insights into a hybrid approach.

Topics:

Published at DZone with permission of Mark Needham, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}