Roku Developer Program

Join our online forum to talk to Roku developers and fellow channel creators. Ask questions, share tips with the community, and find helpful resources.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
greengiant83
Visitor

Is there a Ceiling function?

Most languages have a ceiling function. That is to say a function that takes a number and rounds it up to the next largest integer

Gives results like this:
1.1 -> 2
1.5 -> 2
1.9 -> 2
2.0 -> 2
2.1 -> 3

I don't see it in the list of the Built-in functions (http://sdkdocs.roku.com/display/sdkdoc4 ... -functions). Does Brightscript not have this basic method?
0 Kudos
7 REPLIES 7
RokuMarkn
Visitor

Re: Is there a Ceiling function?

No but you can easily do something like

if Int(x) = x then ceiling = x else ceiling = Int(x) + 1


--Mark
0 Kudos
EnTerr
Roku Guru

Re: Is there a Ceiling function?

"greengiant83" wrote:
Most languages have a ceiling function. ... Does Brightscript not have this basic method?


That's not true. Most languages have "floor" and "round" kind of conversion float->int. And the reason "ceiling" might not be included is you can easily do that with floor(x + 1 - epsilon), where epsilon is some platform specific small value like 1e-30. Or you know, floor(x + 0.9999...). Duh.
0 Kudos
destruk
Streaming Star

Re: Is there a Ceiling function?

Most - can't be used as an adjective in this thread. The only language I know of with a ceiling function is javascript. Spreadsheets have the function as well, but those aren't programming languages.
Int and Fix are already filling the requirement, so there isn't a real need for a ceiling specific function in brightscript.
0 Kudos
rjbrown
Visitor

Re: Is there a Ceiling function?

"The only language I know of with a ceiling function is javascript."

I guess you haven't used any of the top ten programming languages then: http://bestteneverything.com/top-ten-mo ... ages-2013/

They all have a ceil/ceiling function.

Anyway, would it make sense to do something like "-(Int(-x))" instead of the other solutions?
0 Kudos
destruk
Streaming Star

Re: Is there a Ceiling function?

Yup, guess not. Anyway, you could show off by creating your own ceiling function in Brightscript - impress your friends.
0 Kudos
damon1337
Visitor

Re: Is there a Ceiling function?

There is: just use Int(variable as float)

http://sdkdocs.roku.com/pages/viewpage. ... tAsInteger
0 Kudos
EnTerr
Roku Guru

Re: Is there a Ceiling function?

"damon1337" wrote:
There is: just use Int(variable as float)

No. What int() does is actually floor():
BrightScript Debugger> ? int(1.4), int(-1.4)
1 -2

The right way to do it is what RokuMarkn said. Slightly optimized:
function ceiling(x):
i = int(x)
if i < x then i = i + 1
return i
end function

Or a one-liner for the console:
BrightScript Debugger> ceiling = function(x): return int(x) + sgn(x - int(x)): end function
BrightScript Debugger> ? ceiling(1.4), ceiling(-1.4)
2 -1
0 Kudos
Need Assistance?
Welcome to the Roku Community! Feel free to search our Community for answers or post your question to get help.

Become a Roku Streaming Expert!

Share your expertise, help fellow streamers, and unlock exclusive rewards as part of the Roku Community. Learn more.