Rounding issues

Solved!
DSS_User
Dataiker
Rounding issues

Hi,



I don't understand why in a prepare recipe, the sum of 2 values rounded at a single decimal can be a number with more than one decimal ?



1 Solution
Clรฉment_Stenac
Hi,

DSS, like many other software, uses floating-point arithmetics (https://en.wikipedia.org/wiki/Floating-point_arithmetic).

One of the main characteristics of this kind of computation is that it uses a fixed amount of memory to represent all numbers, and thus cannot represent numbers with an infinite precision.

Due to details of how these numbers are represented, some rounding issues can always happen when doing computations, even very simple ones, because the result might not be representable exactly.

A quite famous example of this is 0.1 + 0.2, which is not equal to 0.3 in floating point arithmetic but 0.300000000004

You will need to reformat your number, as shown here: http://answers.dataiku.com/1027/change-precision-of-double-number

View solution in original post

1 Reply
Clรฉment_Stenac
Hi,

DSS, like many other software, uses floating-point arithmetics (https://en.wikipedia.org/wiki/Floating-point_arithmetic).

One of the main characteristics of this kind of computation is that it uses a fixed amount of memory to represent all numbers, and thus cannot represent numbers with an infinite precision.

Due to details of how these numbers are represented, some rounding issues can always happen when doing computations, even very simple ones, because the result might not be representable exactly.

A quite famous example of this is 0.1 + 0.2, which is not equal to 0.3 in floating point arithmetic but 0.300000000004

You will need to reformat your number, as shown here: http://answers.dataiku.com/1027/change-precision-of-double-number