Talk:Floor

Revision as of 16:41, 18 October 2008 by imported>DragoonWraith (I'd check that it doesn't just truncate (as I would suspect it does); regardless, modulo is probably the better answer because it doesn't rely on truncation or rounding)

Floor without OBSE?

While I personally think everyone should get OBSE, some people would rather not. I was trying to do the floor function without OBSE by setting and reading variables, but I can't think of a way to do it.

anybody have any ideas?

morerunes 15:50, 18 October 2008 (EDT)

According to this page all integer variables are rounded to the nearest integer. So 1.9 would be rounded to 2. Instead you want to round it to 1, so how about subtracting 0.5 before putting it into a short:
y0n1n2 short flooredInt float decimalValue set decimalValue to 1.9 set flooredInt to decimalValue - 0.5  ;; rounding 1.4 to the nearest integer gives 1 set decimalValue to 2.0 set flooredInt to decimalValue - 0.5  ;; rounding 1.5 to the nearest integer gives 2 n2n1y0
--Qazaaq 17:26, 18 October 2008 (EDT)
It strikes me as incredibly unlikely that setting a short to a float results in rounding rather than truncation. Given the very old (read: out-of-date) nature of that article, I'd test that. If it doesn't round, then just setting a short to a float value will automatically floor it.
But regardless, using Modulo would eliminate dependence on the particular implementation there:
y0
y1n2 code n2y1
y0
That template is awesome, Qazaaq, by the way.
Dragoon Wraith TALK 17:41, 18 October 2008 (EDT)
Return to "Floor" page.