| 
 Результат вычислений в экспоненциальной форме
 Здравствуйте, товарищи! 
Сегодня решил начать изучение 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>
(Ох, даже стыдно показывать этот бред.) 
Оцените, пожалуйста. А еще лучше - расскажите про правильный алгоритм.
 
И еще вопрос. В каких случаях в конце строчки кода ставится точка с запятой? Не совсем понимаю.
 
Огромное спасибо за внимание! |