webForumDet fria alternativet

Division by zero?

7 svar · 292 visningar · startad av His Divine Shadow

His Divine ShadowMedlem sedan sep. 20004 079 inlägg
#1

Har gjort en liten räknare här:
http://www.hisdivineshadow.com/misc/causality.asp

Och, när jag matar in siffrorna 10000 och -0,0001 får jag ett "division by zero" error, eller det fick jag på en annan server, på denna server säger det bara "internal error 500"

Här är koden:

[B]formuläret:[/B]
<form action="causality.asp?Calculate=yes" method="post">
			<table border="0" cellpadding="1" cellspacing="0">
				<tr>
					<td>
						<font face="Verdana" size="1">Speed of signal:</font>
					</td>
				</tr>
				<tr>
					<td>
						<%IF request("Calculate") = "yes" THEN%>
						<input type="text" name="v" value="<%=Request("v")%>">
						<%ELSE%>
						<input type="text" name="v" value="1">
						<%END IF%>
					</td>
				</tr>
				<tr>
					<td>
						<font face="Verdana" size="1">relative velocity between transmitter and 
							reciever(negative numbers if they are moving towards each other): </font>
					</td>
				</tr>
				<tr>
					<td>
						<%IF request("Calculate") = "yes" THEN%>
						<input type="text" name="vo" value="<%=vo%>"><font face="Verdana" size="1">
							<%ELSE%>
							<input type="text" name="vo" value="">
							<%END IF%>
					</td>
				</tr>
				<tr>
					<td>
						<font face="Verdana" size="1">Result:</font>
					</td>
				</tr>
				<tr>
					<td>
						<%IF request("Calculate") = "yes" THEN%>
						<input type="text" name="answer" value="<%=Result%>" ID="Text1">
						<%ELSE%>
						<input type="text" name="answer" value="" ID="Text2">
						<%END IF%>
					</td>
				</tr>
				<tr>
					<td>
						<input type="submit" value="Calculate">
					</td>
				</tr>
			</table>
		</form>

[B]Koden som räknar:[/B]
v = cdbl(replace(request("v"),".",","))
vo = cdbl(replace(request("vo"),".",","))

Result = ((v + vo)/(1 + (vo * v)))
@ndersMedlem sedan juni 200032 969 inlägg
#2

Det är väl inte så konstigt?

10000 * (-0.0001) = -1

1+ (-1) = 1-1 = 0.

Du försöker dela med 0. Gör inte det.

Mvh

His Divine ShadowMedlem sedan sep. 20004 079 inlägg
#3

Men då vill jag att svaret blir 0 istället för ett error.

lindroosMedlem sedan nov. 200020 inlägg
#4

Vill du ha hjälp att hantera nolldivision i koden, eller undrar du varför det blir "division by zero"? Det senare är för att resultatet höger om / blir 0 (om nu inte mina mattekunskaper är helt förlegade).

@ndersMedlem sedan juni 200032 969 inlägg
#5

His Divine Shadow skrev:

Men då vill jag att svaret blir 0 istället för ett error.

Släng in en liten if-sats då!

If vo*v = -1 then
    'attans
else
    'woo
end if
His Divine ShadowMedlem sedan sep. 20004 079 inlägg
#6

Jovisst, men skrik inte, jag blir så upprörd :(

@ndersMedlem sedan juni 200032 969 inlägg
#7

Här skriks inte!

His Divine ShadowMedlem sedan sep. 20004 079 inlägg
#8

Såklart :p

Tack iaf. såpass enkla lösningar är alltid bra.

124 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)