webForumDet fria alternativet

division med 0

ASP

7 svar · 292 visningar · startad av ampy

Medlem sedan feb. 20011 498 inlägg
Frågan#1

Har denna kod:

kvot = 41/(dag1-dag2)
	[B]if i mod kvot = 0 then[/B]
		x = x - 1
	end if

På raden med fetstil får jag föjande felmeddelande:

Körningsfel i Microsoft VBScript fel '800a000b' 

Division med noll

Variabeln kvot innerhåller aldrig ett värde under 0. Inte heller variabeln i. Varför får jag detta felmeddelande ändå?

Medlem sedan jan. 20032 285 inlägg
#2
dagar = dag1 - dag2

If NOT CInt(dagar) = 0 Then
  kvot = 41/CInt(dagar)
  If i Mod kvot = 0 Then
    x = x - 1
  End If
End If

Kanske?

Medlem sedan feb. 20011 498 inlägg
#3

Hjälper tyvärr inte. Har skrivit ut variablerna och dom innehåller dessa värden:

kvot = 0,36283185840708
i = 1

Medlem sedan jan. 20032 285 inlägg
#4

If i Mod Int(kvot) = 0 Then?

Medlem sedan feb. 20011 498 inlägg
#5

Sebbe skrev:

If i Mod Int(kvot) = 0 Then?

Kommer inte heller funka. Om jag använder funktionen Int på variablen kvot så kommer den få värdet 0. Jag har testat med funktionen round istället men funkar inte då heller.

Medlem sedan juni 200032 967 inlägg
#6

Operatorn MOD gör automatiskt en avrundning till närmaste heltal. Det innebär det faktiskt blir 1 mod 0, därav felmeddelandet.

Mvh,

Medlem sedan feb. 20011 498 inlägg
#7

@nders skrev:

Operatorn MOD gör automatiskt en avrundning till närmaste heltal. Det innebär det faktiskt blir 1 mod 0, därav felmeddelandet.

Mvh,

Hur ska man göra istället då?

Medlem sedan juni 200032 967 inlägg
#8

Du kan ju alltid multiplicera båda talen med ett tusen eller liknande. Förhållandet är väl ändå det samma?

255 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)