javascript - Why is my JS random ints generator so wrong when I give him one negative and one positive number? -


so use such script random int generation inside of range

function randominrange(start, end) {   if ((start >= 0) && (end >= 0))   {     return math.round(math.abs(start) + (math.random() * (math.abs(end) - math.abs(start))));    }   else if ((start <= 0) && (end <= 0))   {     return 0 - (math.round(math.abs(start) + (math.random() * (math.abs(end) - math.abs(start)))));   }   else   {     return math.round(((start) + math.random() * (end - start)));   }  } 

you can see @ work here. positive ranges correct, negative correct bad , wrong results mixed. why , how fix it?

i try use formula math.round(start + math.random() * (end - start));

ok, found problem, you're performing algebra on strings (since in code $('fnt').value value of input box, string), not numbers, things + end concatenating strings , not adding numeric content. in particular example, have:

math.round(((start) + math.random() * (end - start))) 

which evaluates to:

math.round((('13') + math.random() * ('-666' - '13')))  

which evaluates (for example):

math.round("13-339.44615370430984") 

since '13' + '-339.44615370430984' concatenated, , math.round call return nan

you should have:

function randominrange(start, end) {   start = number(start); end = number(end);   return math.round(start + math.random() * (end - start)); } 

or change values pass function, making sure they're numbers.


Comments

Popular posts from this blog

c# - SharpSVN - How to get the previous revision? -

c++ - Is it possible to compile a VST on linux? -

url - Querystring manipulation of email Address in PHP -