charco

31 Jul 2006, 05:53 AM

Hi folks - I'm a bit of a novato with JS and have written some science calculations programs using Avogador's number 6.02e23.

The problem is that when I set a variable to this number and then perform calculations with it it returns the "invalid floating point" error warning (and the computer crashes!)

However, this doesn't happen on the HTML version of the pages - only on the e-book that I am compiling using the html (I am using ebook edit pro)

The calculations I am using are fairly simple, as follows:

//initialise variables------------

attempts=0

total=0

correct=0

tried=0

avo=6.02E23

ans=""

RMMs=new Array(18,44,28,80,32,28,17,256,58.5,167,188,40,56,208,62)

function begin(){

n=Math.round(14*Math.random())

RMM=RMMs[n]

mass=Math.round(4*Math.pow(10,Math.random()))/100

Vg=Math.round(4*Math.pow(10,Math.random()))/100

moles=mass/RMM

display()

}

function display(){

dimV=" cm<sup>3</sup>"

dimM=" g"

dimV2=" dm<sup>3</sup>"

var h=Math.round(2.5*Math.random())

if(n<8){

h=0

}

if(n>7){

h=2

}

if(h==0){

v1=Vg+dimV

v2=mass+dimM

ans=moles*avo

}

if(h==1){

v1=Vg+dimV

v2=mass+dimM

ans=moles*avo

}

if(h==2 & n>7 & n<13){

v1=Vg+dimV

v2=mass+dimM

ans=moles*avo

ans=2*ans

}

if(h==2 & n>12){

v1=Vg+dimV

v2=mass+dimM

ans=moles*avo

ans=3*ans

}

ans=ans.toPrecision(3)

setthequestion()

}

and then I have to functions to set the question and show the answers. If I set the variable 'avo' to simple numbers the script has no problems but as it is a very large number 6.02 x 10(23) this causes the system to register the error.

My question is simple - is there a work around for this problem?

Any help would be greatly appreciated

Thanks

The problem is that when I set a variable to this number and then perform calculations with it it returns the "invalid floating point" error warning (and the computer crashes!)

However, this doesn't happen on the HTML version of the pages - only on the e-book that I am compiling using the html (I am using ebook edit pro)

The calculations I am using are fairly simple, as follows:

//initialise variables------------

attempts=0

total=0

correct=0

tried=0

avo=6.02E23

ans=""

RMMs=new Array(18,44,28,80,32,28,17,256,58.5,167,188,40,56,208,62)

function begin(){

n=Math.round(14*Math.random())

RMM=RMMs[n]

mass=Math.round(4*Math.pow(10,Math.random()))/100

Vg=Math.round(4*Math.pow(10,Math.random()))/100

moles=mass/RMM

display()

}

function display(){

dimV=" cm<sup>3</sup>"

dimM=" g"

dimV2=" dm<sup>3</sup>"

var h=Math.round(2.5*Math.random())

if(n<8){

h=0

}

if(n>7){

h=2

}

if(h==0){

v1=Vg+dimV

v2=mass+dimM

ans=moles*avo

}

if(h==1){

v1=Vg+dimV

v2=mass+dimM

ans=moles*avo

}

if(h==2 & n>7 & n<13){

v1=Vg+dimV

v2=mass+dimM

ans=moles*avo

ans=2*ans

}

if(h==2 & n>12){

v1=Vg+dimV

v2=mass+dimM

ans=moles*avo

ans=3*ans

}

ans=ans.toPrecision(3)

setthequestion()

}

and then I have to functions to set the question and show the answers. If I set the variable 'avo' to simple numbers the script has no problems but as it is a very large number 6.02 x 10(23) this causes the system to register the error.

My question is simple - is there a work around for this problem?

Any help would be greatly appreciated

Thanks