How do you approximate on mirc?
Lets say we have a number 4.6 after approximation it would be 5.
If we have a number 4.2 after approximation it would be 4.
Any ideas how to do this?
$round?
You want to "round to next nearest whole number"
You need to create your own procedure to do the following;
$ceil(N) - Returns N rounded to the next highest integer.
$floor(N) - Returns N rounded to the next lowest integer.
I did it for you :-)
alias SetWholeNumber !return $iif($gettok($1,2,46) >= 5,$ceil($1),$floor($1))
Type //echo -a $SetWholeNumber(4.6) and //echo -a $SetWholeNumber(4.2)
Quote from: Kirke on January 20, 2010, 05:13:51 PM
alias SetWholeNumber !return $iif($gettok($1,2,46) >= 5,$ceil($1),$floor($1))
Ye... Dosn't work. It always returns 8 D=
Quote from: thijn on January 20, 2010, 05:04:04 PM
$round?
I'm not sure how $round works. If I do $round(1.6) it returns 1.6
come on, this is basic maths
http://www.mathwizz.com/fractions/help/help13.htm
that alias i gave you works perfectly fine.
alias SetWholeNumber !return $iif($gettok($1,2,46) >= 5,$ceil($1),$floor($1))
always returns 8 ?
what the heck are you typing ?
type //echo -a $SetWholeNumber(4.2)
//echo -a $SetWholeNumber(4.6)
or you on drugs by any chance ?
Quote from: Kirke on January 20, 2010, 05:27:43 PM
or you on drugs by any chance ?
LOL!
I added
alias SetWholeNumber !return $iif($gettok($1,2,46) >= 5,$ceil($1),$floor($1))
And i typed //echo -a $SetWholeNumber(4.6)
Returns 8.
(BTW math for me is not an issue I'm good at it)
returns 5 for me, just like it should do.
not sure why its retunging 8 for you, make your own.
you know what you need to do now,
use
$celi and $floor read the help manual, come on, its basic maths
Quote from: Kirke on January 20, 2010, 05:33:34 PM
$celi and $floor read the help manual, come on, its basic maths
Nah its extremely basic maths, but basic scripting.
Here's a script I made and it works :D
alias vcmp.whole {
if ($1 < $calc($floor($1) + 0.5)) !return $floor($1)
else !return $ceil($1)
}
Thanks for informing me about $ceil and $floor :P
You switch to pawn, you declare a variable f and you use floatround(f);. Simple as that!
Quote from: Boss on January 20, 2010, 06:05:50 PM
You switch to pawn, you declare a variable f and you use floatround(f);. Simple as that!
Eh... What? Anyways I think I'm better out with mirc ;D
alias SetWholeNumber !return $iif($gettok($1,2,46) >= 5,$ceil($1),$floor($1))
care to explain how that would ever return 8 if passed the value 4.6 ?
its using $gettok to check if the value has a remainder 5 or over
if $true return the next highest integer. $celi
if $false the next lowest integer. $floor
Hmm... Well I just tried your alias a few more times and I found out that if that alias doesn't have "vcmp." attached to it it always returns 8. Weird huh?
When I attached .vcmp it worked
i would quite like to know how on earth your getting it to return 8.
its only returning either $celi or $floor of your passed parameter (in this case 4.6)
PS, would other people check this works:
alias SetWholeNumber !return $iif($gettok($1,2,46) >= 5,$ceil($1),$floor($1))
//echo -a $SetWholeNumber(4.6) - should return 5
//echo -a $SetWholeNumber(4.2) - should return 4
ok, your talking utter rubbish now. you've wasted a whole thread when the example i gave you worked perfectly fine. (which has now probably confused other people)
Quote from: Kirke on January 20, 2010, 06:24:27 PM
ok, your talking utter rubbish now. you've wasted a whole thread when the example i gave you worked perfectly fine. (which has now probably confused other people)
I think you're over reacting buddy. I'm not talking rubbish. For some reason your example doesn't work for me with out "vcmp." attached to it and I really don't want to make a big deal about it.
alias SetWholeNumber !return $iif($gettok($1,2,46) >= 5,$ceil($1),$floor($1))
//echo -a $SetWholeNumber(4.6)
Returns 8
alias vcmp.SetWholeNumber !return $iif($gettok($1,2,46) >= 5,$ceil($1),$floor($1))
//echo -a $vcmp.SetWholeNumber(4.6)
Returns 5
finnal post in this thread
oh mate, thats bad.
you cannot lead people to believe that you must have vcmp. as part of the alias name.
Do you know how silly that sounds ?
kind regards
Accepted Solution:
alias SetWholeNumber !return $iif($gettok($1,2,46) >= 5,$ceil($1),$floor($1))
no offense intended Skirmant, but your an idiot!
the alias name is irreverent, as long as you don't have any conflicting names,
unless you apply the -l switch which stands for "local alias".
it makes NO difference to the result if the alias is vcmp.blah or just blah
Quote from: Kirke on January 20, 2010, 06:46:24 PM
no offense intended Skirmant, but your an idiot!
You had to piss me off did you?
Here's the ultimate proof
http://www.youtube.com/watch?v=VJySqFjobyA
The video may not be finished processing, but by doing full screen you can see it.
I wish that you would take those words back :)
ok, yea, sorry for pissing you off. but my way is right.
lets look at this from another angle.
why do you think the alias name should be prefixed with vcmp. ?
can you check you have no other alias names with SetWholeNumber for me.
PS. your way is right too, btw.
Im just interested why its returning 8 when a value of 4.5 is passed to it. as its only returning $celi or $floor of 4.5
I pretty much searched everywhere there doesn't seem to be another one.
And I have no idea why it works with vcmp. attached to it. Infact it works with anything attached to it.
well, as long as i know the calculation works, the alias name seem to be the problem (im putting that down to a conflicting name in your script)