This ended up intriguing me. Here's something you may or may not find useful:
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Scientific Notation to String Demo</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
function exp2string(num){
num = num - 0;
var numStr = num.toString(10), re = exp2string.re;
if(!re[0].test(numStr) || typeof num !== 'number' || isNaN(num)){
alert((typeof num !== 'number' || isNaN(num)? 'exp2string requires a number as input' : 'exp2string requires a number in scientific notation') +
'. Returning ' + (isNaN(num)? 'NaN (Not a Number)' : 'Input') + '.');
return num;
}
var numAr = num.toString(10).split(re[3]), result;
numAr[0] = numAr[0].replace(re[1], '');
if(re[2].test(numAr[1])){
result = '0.';
numAr[1] = numAr[1] * -1 - 2;
for (var i = numAr[1]; i > -1; --i){
result += '0';
}
result += numAr[0];
} else {
result = numAr[0];
numAr[1] = numAr[1] - numAr[0].length;
for (var i = numAr[1]; i > -1; --i){
result += '0';
}
}
return result;
}
exp2string.re = [/^\d\.\d+e[-+]\d+$/i, /\./, /-/, /e/i];
</script>
<style type="text/css">
body {
color: #000;
background-color: #fff;
font: normal 85% verdana, arial, sans-serif;
}
#strNote {
vertical-align: top;
}
</style>
</head>
<body>
<form action="#" onsubmit="return false;">
Input Scientific Notation (#.#e+/-#): <input size=30 id="sciNote" type="text" value="3.6778967343747667e-196"><br>
<script type="text/javascript">
/* <![CDATA[ */
document.write('Result: <textarea id="strNote" cols="50" rows="1" wrap="off" readonly><\/textarea><br>');
/* ]]> */
</script>
<input type="button" value="Go" onclick="document.getElementById('strNote').value = exp2string(document.getElementById('sciNote').value);"><br>
<input type="button" value="Check Equality" onclick="alert(document.getElementById('strNote').value - 0 == document.getElementById('sciNote').value - 0);"><br>
<input type="reset" value="Reset">
</form>
</body>
</html>
Bookmarks