Difference between revisions of "Talk:Ceil"

From the Oblivion ConstructionSet Wiki
Jump to navigation Jump to search
imported>TheImperialDragon
imported>TheImperialDragon
m
Line 68: Line 68:


Isn't there already a way of rounding a number to the next highest integer? [[User:TheImperialDragon|The Imperial Dragon]] 20:16, 21 August 2006 (EDT)
Isn't there already a way of rounding a number to the next highest integer? [[User:TheImperialDragon|The Imperial Dragon]] 20:16, 21 August 2006 (EDT)
[[Ceilling and Floor]]

Revision as of 19:18, 21 August 2006

General Talk

seems like this function doesn't like parentheses and expressions that contain other functions.

set dummy to player.getav sneak 
set result to ceil dummy / 25

works fine

set result to ceil player.getav sneak / 25

returns "Unknown variable getav"

set result to ceil ( player.getav sneak / 25 )

returns "Missing parameter float"

--JOG 06:45, 21 August 2006 (EDT)

afaik, all functions behave like that. It's not something specific to ceil.
--Timeslip 08:13, 21 August 2006 (EDT)


--JOG 09:35, 21 August 2006 (EDT): Uhm... Yes of course, forget this ;)


JOG 14:18, 21 August 2006 (EDT): No, actually it still doesn't do what I want:

set floatvar to 0.55
set shortvar to ceil 11 * floatvar - 5

returns 1 instead of 2 so it's most likely compiled to ceil(11)* floatvar - 5

set floatvar to 0.55
set shortvar to ceil ( 11 * floatvar - 5 )

won't compile ("Missing parameter float"). This makes the function a bit useless for me, because I don't want to use a second dummy-float, just to set the ceiled variable into a short. I'd rather use:

set floatvar to 0.55
set shortvar to 11 * floatvar - 4.01


Another example:

short x ; = 3
short y ; = 2 

set x to y * x / 1.9           

Will set x to 3:

2 * 3 / 1.9 = 3.16 => truncated to 3
set x to y * ceil ( x / 1.9 )

Would set x to 4:

3 / 1.9 = 1.58 => ceiled to 2
2 * 2 = 4
Dragoon Wraith TALK 15:07, 21 August 2006 (EDT): No function (to my knowledge) in Oblivion will take a mathematical expression as an argument, and these mathematical functions, unfortunately, are no different. In order to do this:
set shortvar to ceil ( 11 * floatvar - 5 )
You would need to do this:
set tempvar to ( 11 * floatvar - 5 )
set shortvar to ceil ( tempvar )
I don't believe there's any way around that.
JOG 16:02, 21 August 2006 (EDT) : Yep, again those functions fooled me...
This makes ceil and floor pointless though, because set short to expression + 0.99999 is a one-line ceil and set short to expression is a one-line floor.

Isn't there already a way of rounding a number to the next highest integer? The Imperial Dragon 20:16, 21 August 2006 (EDT)

Ceilling and Floor