Мне нужно преобразовать произвольные числа JavaScript в строки, содержащие выражения JavaScript, которые гарантированно будут иметь то же значение, что и исходное число.
Как правило, String()
подходит для большинства значений, но, в частности, String(-0)
возвращает '0'
, и хотя 0 === -0
, Object.is(0, -0)
возвращает false.
Существуют ли другие числовые значения n
, для которых eval(String(n))
не возвращает значение n
? Я имею в виду, в частности, случаи, когда число с плавающей запятой не может быть точно выражено в десятичном виде, и представление String()
выбирает оценки для ближайшего, но другого числа с плавающей запятой из-за округления / недостаточной точности.
Если так, как я могу получить eval
-значное строковое представление этих чисел?