javascript очень большой отрицательный показатель степени для десятичного преобразования

Как мне получить это отрицательное большое экспоненциальное число 6.849391775995509e-276 до 6,84 в javascript?

Я получаю отрицательные экспоненциальные числа из API, который я хотел бы использовать в своем пользовательском интерфейсе в сокращенной версии до 2 знаков после запятой. Если это имеет значение, я использую число в рендеринге диаграммы d3 в реакции.

Я пробовал несколько разных методов с сайтов документации по javascript, но, похоже, не могу их получить. Можно ли использовать такую ​​библиотеку, как Immutable.js? Любая помощь будет принята с благодарностью. Все попытки во фрагменте кода, использующие запись экспоненты, возвращают 0.00.

function financial(x) {
  return Number.parseFloat(x).toFixed(2);
}
console.log(financial(6.849391775995509e-276));
const num = 6.849391775995509e-276
console.log(num.toFixed(2));
const num2 = 6.84939;
console.log(num2.toFixed(2));

console.log(financial('6.849391775995509e-276'));


person armand    schedule 08.01.2018    source источник
comment
Я не понимаю, что ты пытаешься сделать. Ни одно из этих чисел не является отрицательным.   -  person ninesalt    schedule 08.01.2018
comment
@ninesalt отрицательный показатель степени (т. е. после e), а не отрицательное число.   -  person Federico klez Culloca    schedule 08.01.2018
comment
@ninesalt 6.849391775995509e-276 вместо 1.23e+5 в примере документации developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/   -  person armand    schedule 08.01.2018
comment
В любом случае, как Immutable.js поможет вам здесь? Это не имеет ничего общего с манипуляциями с числами.   -  person Federico klez Culloca    schedule 08.01.2018
comment
@FedericoklezCulloca я видел некоторый код, который достиг использования tofixed и получил 6.84, используя toFixed (2), поэтому я подумал, что, возможно, это может быть встроено в эту библиотеку. Хотя не смог найти.   -  person armand    schedule 08.01.2018
comment
Спасибо всем.   -  person armand    schedule 08.01.2018


Ответы (2)


Подобно ответу Джонаса, однако вы хотите обернуть его в parseFloat(), чтобы получить фактическое число, а не строку.

const num = 6.849391775995509e-276
var newNum = parseFloat(num.toString().substr(0,4)) 
console.log(newNum)

person ninesalt    schedule 08.01.2018
comment
чтобы получить фактическое число, а не строку. Это причина + в начале ответа Джонаса. - person Federico klez Culloca; 08.01.2018
comment
@ninesalt кто такой Джонас? - person armand; 08.01.2018
comment
@idkjs автор другого ответа, Джонас В. - person Federico klez Culloca; 08.01.2018
comment
похоже на var newNum = parseFloat(num.toString().substr(0,4)), чтобы получить вторую цифру после запятой. (0,3) дает вам 6,8. jsbin.com/tobulom/edit?html,js,console,output - person armand; 08.01.2018

 +num.toString().substr(0,3)

Просто преобразуйте его в строку и возьмите первые цифры.

person Jonas Wilms    schedule 08.01.2018