This site uses different types of cookies, including analytics and functional cookies (its own and from other sites). To change your cookie settings or find out more, click here. If you continue browsing our website, you accept these cookies.
This is what Alteryx Support said. Important information.
I spoke with one of our Principal Engineers and he told me that this is expected behavior because Alteryx converts all numbers to a Double when doing math operations and then converts them back to the original data type. This can result in a loss of precision due to how computers store floating point numbers.
The number 38.55 is 38.5499999999999971578290569595992565155029296875 to a computer.
When you multiply this by 100, the number becomes 3854.999999.... and the floor function then converts it to 3854.
A way to avoid this would be to round your number to two decimal places first. I recommend changing the formula to below: FLOOR(Round( 3355 , .01) * 100 )
Rounding to two decimal places first (or in some cases rounding to 4 decimal places and then rounding again to 2 decimal places) is recommended for operations in financial math.