Problema Math.random() in JS

Buna ziua! Incerc sa generez niste culori in hex cu random cu Math.random. Problema este ca atunci cand Math.random imi genereaza un numar intre 0-9 mi-l genereaza pe un singur digit iar cand il adaug in codul hex al culorii imi apare aceasta eroare:

The specified value “#67694” does not conform to the required format. The format is “#rrggbb” where rr, gg, bb are two-digit hexadecimal numbers.

si culoarea generata este negru.

Exista alta metoda de rezolvare a acestei probleme inafara de a adauga eu cate un 0 in fata cifrei in caz ca aceasta este cuprinsa intre 0-9?

Pai in primul rand hexazecimal inseamna de la 0 la F in nici un caz de la 0 la 9.
In al doilea rand eroarea #67694 are doar 5 cifre nu 6

1 Like

Math.random îți generează un număr între 0 și 1. Tu vrei un număr random între 0 și 255 (sau 00 și FF).

function getRandomInt(max) {
  return Math.floor(Math.random() * Math.floor(max));
}

Apoi poți converti în hexa cu:

(0 + getRandomInt(255).toString(16)).slice(-2)

Ce greseala stupida am facut… chiar nu m-am gandit ca in hex nu sunt doar numere.
Sunt 5 cifre pentru ca unul din numerele generate a fost intre 0-9.
Multumesc pentru raspuns!

A mers. Multumesc pentru ajutor :slight_smile: