Ответ 1
Вы можете сделать что-то вроде этого:
a = 200
a.toExponential(); //output 2e+2
скрипка: http://jsfiddle.net/Q8avJ/9/
Я хочу сделать функцию, которая принимает введенное значение и преобразует его в научную нотацию (N x 10 ^ a)
Я пробовал много разных вещей, но, похоже, я не понимаю.
Пример:
Я вхожу 200. Преобразователь преобразует его в 2 x 10 ^ 2
Вы можете сделать что-то вроде этого:
a = 200
a.toExponential(); //output 2e+2
скрипка: http://jsfiddle.net/Q8avJ/9/
Если вам нужен базовый формат 10:
m x 10 n
Затем вы можете использовать такую функцию:
function writeScientificNum(p_num, p_precision) {
var n = Math.round(Math.log10(a));
var m = (p_num * (Math.pow(10,Math.abs(n)))).toFixed(p_precision);
document.getElementById("outputTxt").innerHTML = m.toString() + ' x 10<sup>' + n.toString() + '</sup>';
}
Проверьте это: http://jsfiddle.net/u1hd4zm9/
Только странно, что метод toFixed (по крайней мере, в Chrome) не будет округлять точную половину вверх, но вниз. Например, если вы запустите этот код:
var test = 2.55;
alert(test.toFixed(1));
Он напечатает "2.5", а не "2.6", как вы ожидаете. Однако, если вы запустите этот код:
var test = 2.5;
alert(test.toFixed(0));
Он напечатает 3. Знайте об этом.