webForumDet fria alternativet

Division by zero?

9 svar · 346 visningar · startad av Greven

GrevenMedlem sedan okt. 2003119 inlägg
#1

Vad är fel med nedanstående kod? (funkar fin fint lokalt, men på hotellet blir det knas)

<%
Dim A11, B11
A11 = Rs("plac")
B11 = objrs11("antal")
p11 =Round((a11)/(b11)*100,0)
%>

Fel msg:

Microsoft VBScript runtime error '800a000b'
Division by zero

Nexus86Medlem sedan okt. 20023 030 inlägg
#2

Det betyder att b11 = 0 och man kan inte dela ett tal med noll.

T.ex
42/0, hur många ggr går 0 in i 42? Jo oändligt. Du kan alltså inte dela ett tal med 0.

GrevenMedlem sedan okt. 2003119 inlägg
#3

Okej ;)

Men kan du förklara varför det funkar lokalt och på dknet, men inte loopia?

Kan detta funka bättre?

<%
IF objrs11("antal") = 0 THEN
Dim A11, B11
A11 = Rs("plac")
B11 = objrs11("antal")
p11 =Round((a11)/(b11)*100,0)
END IF
%>

Engine^Medlem sedan dec. 20003 887 inlägg
#4

Ehh... den koden kommer alltid att ge division by zero.

<%
If Not Rs.EOF Then
  A11 = Rs("plac")
Else
  A11 = 0
End If

If Not objrs11.EOF Then
  If Not objrs11("antal") = 0 Then
    B11 = objrs11("antal")
  Else
    B11 = 1
  End If
Else
  B11 = 1
End If

p11 = Round(a11 / b11 * 100, 0)

Ytterligare en anledning till att det inte fungerar kan vara att objrs11 eller Rs är tomma.

GrevenMedlem sedan okt. 2003119 inlägg
#5

Problemet är visst att objrs11("antal") är '0' på loopia... men lokalt och på dknet får 'antal' ett värde...

Vad kan vara fel?

<%
SQL = "SELECT Count(*) AS antal FROM " & request.querystring("ar") & " where datum like '" & request.querystring("ar") _
& "%' and enamn='" & rs("enamn") & "' AND fnamn='" & rs("fnamn") & "'"
set objRS11 = MinCon.Execute(SQL)
%>

<%
Dim a11, b11
If Not Rs.EOF Then
  A11 = Rs("plac")
Else
  A11 = 0
End If

If Not objrs11.EOF Then
  If Not objrs11("antal") = 0 Then
    B11 = objrs11("antal")
  Else
    B11 = 1
  End If
Else
  B11 = 1
End If

p11 = Round(a11 / b11 * 100, 0)
%>
GrevenMedlem sedan okt. 2003119 inlägg
#6

Är det SQL-satsen som är felkomp.?

Finns det någon annan lösning där man räknar antal unika fall?

PeeerMedlem sedan mars 20025 907 inlägg
#7

Finns det några poster i databsen som uppfyller villkoren då? Kör du med en databas lokalt/dknet och en annan på loopia?

GrevenMedlem sedan okt. 2003119 inlägg
#8

Jag kör med exakt samma databas, lokalt, dknet och på loopia... mkt skumt :r

GrevenMedlem sedan okt. 2003119 inlägg
#9
SQL = "SELECT Count(*) AS antal FROM " & request.querystring("ar") & " where  enamn='" & rs("enamn") _
& "' AND fnamn='" & rs("fnamn") & "'"

Tog bort 'datum' i where-satsen ;)

CalevanMedlem sedan maj 20031 173 inlägg
#10

Nexus86 skrev:

Det betyder att b11 = 0 och man kan inte dela ett tal med noll.

T.ex
42/0, hur många ggr går 0 in i 42? Jo oändligt. Du kan alltså inte dela ett tal med 0.

förlåt, men jag kunnde inte låta detta passera obemärkt. att säga att 42/0 skulle vara lika med oändligheten är inte helt korrekt.

om du vill kan du läsa mer här:
http://www.math.su.se/~jesper/research/wheels/easy.pdf
tar upp lite av problemet och en lösning på att dela med noll

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