DeeLan Posted October 27, 2017 Share Posted October 27, 2017 I've got a Wrangle Node (set to Detail) with some stuff in it. Amount that is a simple Modulo Operation - "offset%spacing". Now obviously if offset is a multiple of spacing then "offset%spacing" should equal 0. Problem is, most of the time it definitely does not equal zero. I've found that when spacing equals certain values (0.5 for example) then the result is as it should be. However most of the time I'm getting errors. Some are small (2.08616e-07 is one such value) but others have been as big as "spacing" itself. For example, at the moment offset and spacing are 27.6 and 0.4 respectively. When I put those values through a calculator I get 0 (as I should, because 27.6 is a multiple of 0.4). However Houdini simply gives me 0.4 I've gone a done the math by hand (well really by calculator) for a bunch of combinations and while they all return 0, Houdini still gives an incorrect value. Please Help! I have absolutely no idea why this is happening. Quote Link to comment Share on other sites More sharing options...
fsimerey Posted October 27, 2017 Share Posted October 27, 2017 I would round the offset value before modulo operation OR multiply the offset and transform to integer like this: int(offset*10)%4 Quote Link to comment Share on other sites More sharing options...
DeeLan Posted October 27, 2017 Author Share Posted October 27, 2017 That's a great works perfectly Thanks! Do you know if there's a particular reason as to why it works properly with integers and not decimals? Or is just "One of those things"? Quote Link to comment Share on other sites More sharing options...
fsimerey Posted October 27, 2017 Share Posted October 27, 2017 I think it's a problem of precision. Transform in integer avoid this precision. It's why round the offset must works too. Quote Link to comment Share on other sites More sharing options...
DeeLan Posted October 27, 2017 Author Share Posted October 27, 2017 so I'm still getting issues even when I convert to integers. Its really weird, but I'm finding the only way to only way to get the correct results is to decrease the accuracy. For example, if I multiply (and then redivide) my float by anything above 10^5, then I get incorrect results again, whereas 10^4 seems to get it right all the time (so far). So even if I have a value to 6 or 7 decimal places, its better to just multiply by 10^4 and lose those last few digits. Its just so odd that using less accurate values yields the proper results. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.