LoginLogin
Nintendo shutting down 3DS + Wii U online services, see our post

Limits in SmileBasic

Root / Programming Questions / [.]

S_DE_SolutionsCreated:
If you are found a limit in SmileBasic, you can post it here. For starting: You may know the differnt Variable Types: String ( $ ) Integer ( % ) Real ( # ) Here are some Limits (please reading without the point):
 VAR S$ 
Up to 4.157.644 letters ! Important Note: Be careful and don't try to typing it or printing it, because it will be slow down your Hardware until it seems like to freeze it !
 VAR I% 
From −2.147.483.648 up to +2.147.483.647

wut

Wut the heck Pretty strange :/

The followed limits are a little bit strange. STR$ should generate a string from a numerical value. In most cases it worked fine, but with large Numbers you will run into problems.
String$ = STR$(Limit%)
String$ is correct inside the Integer-limit. Outside the limit it will showed as academically. (for example: Limit%+1 = 2.14748e+09)
String$ = STR$(Real#)
String$ and using Real# is more tricky. It will only reads 6 digit. The position of the decimal separator is showed up to 99999.9. So you can get Numbers like 1.23456 or 12345.6 . A number like 12345.6789 will create this string: 123456.7 Using calculation with decimal number will be automaticly rounded too but only up to 999999. Calculation like 999999+0.6 will generate a academically String like 1e+06.

STR$ is very broken...
?1000000.0 '1000000
?STR$(1000000.0) '1e+06
?STR$(1000000) '1000000
It's probably a good idea to use FORMAT$ instead, unless you're only using integers or small real numbers.

for i=0 to 10
if i>2 then i=0
NEXT
Classic infinite for loop.

WHILE 1
WEND

WHILE 1
WEND
Yes that's what I use