At 06:31 PM 1/13/2003, you wrote:
Is this a vaguery of the script system, and should I use an external method instead?
It's just an artifact of Python math. When you divide an integer by an integer, you get an integer. Thus, 40/100 and 25/100 are both equal to 0 and the assignments resulting from these calculations assign the same values, thus: session['N_lands']=round(session['N_pond']*(1-(N_irrigation_loss/100)),1) session['N_soil']=round(session['N_lands']*(1-(N_soil_loss/100)), 1) ... reduces to ... session['N_lands']=round(session['N_pond']*(1-(0)),1) session['N_soil']=round(session['N_lands']*(1-(0)), 1) ...and N_soil is dutifully set equal to 1 times the value of N_lands To fix this, change your declarations at the top to the following: N_shed_loss=10.0 N_screen_loss=8.0 N_sludge_loss=24.0 N_pond_loss=40.0 N_irrigation_loss=25.0 N_soil_loss=25.0 That should fix it. HTH, Dylan