I have been working on a cool project for making a color wheel and exposing color theory through it. I came across this problem of converting a string to a hexadecimal number. Doing Number("0x123456") just returns a decimal number, but I want 0x123456 as the output. How can I achieve this?

There are no "hexadecimal numbers", just numbers. Only a string representation of them will have a base - the standard one when converting a number to a string is `10`

, but you can also write

```
const number = 0x123456; // same as number = 1193046;
console.log('0x'+number.toString(16)); // '0x123456'
```

This is the problem I'm trying to solve; I don't want "0x123456" (the string) but 0x123456 the number in hex notation. How can I do that? Glad you replied to my question.

0x123456 is a number already; `'0x' + 0x123456.toString(16)`

would give you the string form.

A number does not contain a notation.

see The original question

So I guess there's no sensible answer to this question.

Number("1193046", 16)

// 0x123456

a solution like thisðŸ‘† would have been nice.

There's no hex number *type* - so `1193046`

and `0x123456`

are the same number, and can only be represented in a base that's not 10 by converting to a string.