JavaScript Woes

Quick Nav Menu
  1. JavaScript's lack of mathematical precision
  2. PERL workaround
  3. Related links

The problem is "a lack of precision"

While JavaScript is quickly becoming the lingua franca of the web, this general purpose language contains built-in limitations which restrict its use to simple applications. For example, I recently attempted to write a Diffie-Hellman Key-Exchange Demo in JavaScript but detected problems during testing which I traced to a lack of mathematical precision. Check out these comparisons:

JavaScriptMath.pow(7,18) 1,628,413,597,910,449 correct
Calculator7^181,628,413,597,910,449 correct
JavaScriptMath.pow(7,19)11,398,895,185,373,144 incorrect
Calculator7^19 11,398,895,185,373,143correct
JavaScriptMath.pow(7,20) 79,792,266,297,612,000incorrect
Calculator 7^2079,792,266,297,612,001correct
JavaScriptMath.pow(7,21) 558,545,864,083,284,030incorrect
Calculator 7^21558,545,864,083,284,007correct

PERL Workaround

Legend:	<sr> = system response
	<ur> = user response

<sr>	$
<ur>	type
	#       title:
	use bigint;             # use bigint after this point
	$x = 7 ** 19;           # x = 7^19
	printf("%s\n",$x);      # "%s" because other formats bomb
<sr>	$
<ur>	perl
<sr>	11398895185373143	! correct
<ur>	$

Related Links

Back to OpenVMS
Back to Home
Neil Rieck
Kitchener - Waterloo - Cambridge, Ontario, Canada.