Difference between revisions of "Ceiling and Floor"

From the Oblivion ConstructionSet Wiki
Jump to navigation Jump to search
imported>Slserpent
(i'm not great with math, so please correct me if these don't work)
 
imported>DragoonWraith
 
(4 intermediate revisions by 2 users not shown)
Line 6: Line 6:




If you want a number to be rounded normally, just typecast by turning the variable into a short or long.
If you want a number to be rounded down, just typecast by turning the variable into a short or long.  This can be tested/proven using the console in game.


  float fNumber
  float fNumber
  short iNumber
  short iNumber
   
   
  set fNumber to 9.45
  set fNumber to 1.99
  set iNumber to fNumber
  set iNumber to fNumber
  ;iNumber is now 9
  ;iNumber is now 1




Line 34: Line 34:
  set iNumber to (fNumber - (fNumber % 1)) + 1
  set iNumber to (fNumber - (fNumber % 1)) + 1
  ;iNumber is now 10
  ;iNumber is now 10
[[Category: Math Functions (CS 1.0)]]

Latest revision as of 20:18, 25 April 2010

Here's how to get the ceiling and floor of a float variable. Floor is truncating the decimal portion (rounding down). Ceiling is rounding up the variable.

Take the number 9.45:
The floor is 9.
The ceiling is 10.


If you want a number to be rounded down, just typecast by turning the variable into a short or long. This can be tested/proven using the console in game.

float fNumber
short iNumber

set fNumber to 1.99
set iNumber to fNumber
;iNumber is now 1


It's only a bit more involved to get the floor. You basically just mod out the decimal portion and subtract.

float fNumber
short iNumber

set fNumber to 9.45
set iNumber to fNumber - (fNumber % 1)
;iNumber is now 9


And now the ceiling.

float fNumber
short iNumber

set fNumber to 9.45
set iNumber to (fNumber - (fNumber % 1)) + 1
;iNumber is now 10