Здравствуйте, товарищи!
Сегодня решил начать изучение JavaScript. Купил книжку, весь день увлеченно ее читал, и решил (ясное дело) написать чего-нибудь.
Остановился на экспоненциальной форме записи чисел. Судя по всему, результаты вычислений над большими числами записываются именно в такой форме. То есть вместо того, чтобы представить результат как
0.00000000000007, JS делает так:
7e-14. Так вот, решил я написать функцию, переводящую такой результат в "нормальный". Получилось следующее:
<html>
<head>
<script>
function NoExp(str_number) {
var IsExp = 0;
var chrLen = 0;
var dotPosition = 0;
var i = 0;
IsExp = str_number.lastIndexOf("-");
if (IsExp > 0) {
chrLen = str_number.substr(IsExp + 1, str_number.length - IsExp - 1);
str_number = str_number.substring(0, IsExp - 1);
dotPosition = str_number.indexOf(".");
str_number = str_number.replace(".", "");
while (i < chrLen - dotPosition) {
str_number = "0" + str_number;
i++;
}
str_number = "0," + str_number;
alert(str_number);
}
IsExp = str_number.lastIndexOf("+");
if (IsExp > 0) {
chrLen = str_number.substr(IsExp + 1, str_number.length - IsExp - 1);
str_number = str_number.substring(0, IsExp - 1);
dotPosition = str_number.length - str_number.indexOf(".") - 1;
alert(dotPosition);
str_number = str_number.replace(".", "");
while (i < chrLen - dotPosition) {
str_number = str_number + "0";
i++;
}
str_number = str_number;
alert(str_number);
}
}
</script>
</head>
<input type="button" onclick="NoExp('33.2424e-8')" value="OK">
</html>
(Ох, даже стыдно показывать этот бред.)
Оцените, пожалуйста. А еще лучше - расскажите про правильный алгоритм.
И еще вопрос. В каких случаях в конце строчки кода ставится точка с запятой? Не совсем понимаю.
Огромное спасибо за внимание!