2016-10-05 3 views
-2

Я пытаюсь использовать localStorage, чтобы создать генератор случайных чисел.Случайное число Генерация weird output

Я не знаю, почему, но мой код не работает. Я пробовал все, но я просто путаюсь, почему.

Вот мой код:

localStorage.setItem("MaxInputValue_Storage",10); 
localStorage.setItem("MinInputValue_Storage",5); 


function Random_Number_Generation(Max,Min) { 
    console.log(Min); 
    console.log(Max); 
    var Random_Number = Math.floor(Math.random() * ((Max - Min) + 1) + Min); 
    console.log(Random_Number); 
}; 

Random_Number_Generation(localStorage.getItem("MaxInputValue_Storage"),localStorage.getItem("MinInputValue_Storage")); 

Что происходит?

EDIT: Я ожидаю, чтобы получить значение от 5-10, но я получаю значение из 0- 5.

+5

Не могли бы вы поделиться своим «странным выходом»? –

+1

Это случайная проблема или проблема локального хранения? –

+5

'Max' и' Min' являются строками – Andreas

ответ

0

значение LocalStorage находятся в строчном формате, оператор + работает как оператор конкатенации, если любой из операндов строка. В вашем коде «Min» - «5» из localStorage (это строка), Math.random() * ((Max - Min) + 1) возвращает Number for ex 4.941, поэтому 4.941 + "5" будет 4.9415 , поэтому вы получаете значения от 0 до 4. Используйте parseInt для преобразования этого строкового значения в Number, чтобы получить желаемый результат.

var Random_Number = Math.floor(Math.random() * ((Max - Min) + 1) + parseInt(Min));