webForumDet fria alternativet

Beräkning

6 svar · 586 visningar · startad av devotion

devotionMedlem sedan jan. 20013 582 inlägg
#1

Hej :)

Jag har följande kod soim behöver modifieras:

if isNumeric(sDiscountPct) then
			fDiscountPct = cdbl(sDiscountPct)
		else
			fDiscountPct = 0
		end if
		
		if isNumeric(sExtraDiscountPct) then
			fExtraDiscountPct = cdbl(sExtraDiscountPct)
		else
			fExtraDiscountPct = 0
		end if
		
		fDiscountPct=fDiscountPct+fExtraDiscountPct

Beräkningsmodellen är dock felaktig...

nu gäller följande:

fDiscountPct = 1 -((1-fDiscountPct) * (1-fExtraDiscountPct))

Hur gör man för att ta hänsyn till om fDiscountPct eller fExtraDiscountPct är 0 ?

I nuvarande kod kommer ju et nollvärde på något av dssa värde inneböra att fDiscountPct blir 0

Mvh
Henrik

Peter SMedlem sedan dec. 20025 483 inlägg
#2
fDiscountPct = fDiscountPct * (1-fExtraDiscountPct) + fExtraDiscountPct
devotionMedlem sedan jan. 20013 582 inlägg
#3

Hmmm.... Nu fattar jag ingenting... :)

Peter SMedlem sedan dec. 20025 483 inlägg
#4

I

fDiscountPct = 1 -((1-fDiscountPct) * (1-fExtraDiscountPct))

...hur kan fDiscountPct bli 0 om fDiscountPct xor fExtraDiscountPct är 0? Den enda gången fDiscountPct blir 0 är ju om både fDiscountPct och fExtraDiscountPct är 0 samtidigt.

devotionMedlem sedan jan. 20013 582 inlägg
#5

Peter S skrev:

I

fDiscountPct = 1 -((1-fDiscountPct) * (1-fExtraDiscountPct))

...hur kan fDiscountPct bli 0 om fDiscountPct xor fExtraDiscountPct är 0? Den enda gången fDiscountPct blir 0 är ju om både fDiscountPct och fExtraDiscountPct är 0 samtidigt.

Hmmm.... Det har du rätt i... :)

Jag skrev detta inlägget efter en bättre middag, med lite alkoholhaltiga drycker... Så jag får skylla på det...

Då borde ju min beräkning fungera som det är tänkt...

Mvh
Henrik

Peter SMedlem sedan dec. 20025 483 inlägg
#6

Japp! :)

devotionMedlem sedan jan. 20013 582 inlägg
#7

Då fick det bli så här....

function GetDiscountPct(sNormalDiscountPct, sExtraDiscountPct)

	dim fDiscountPct, fNormalDiscountPct, fExtraDiscountPct
	
	if isNumeric(sNormalDiscountPct) then
		fNormalDiscountPct = cdbl(sNormalDiscountPct)/100
	else
		fNormalDiscountPct = 0
	end if
		
	if isNumeric(sExtraDiscountPct) then
		fExtraDiscountPct = cdbl(sExtraDiscountPct)/100
	else
		fExtraDiscountPct = 0
	end if

	fDiscountPct = 1 -((1-fNormalDiscountPct) * (1-fExtraDiscountPct))
	
	GetDiscountPct=fDiscountPct

End function

Mvh
Henrik

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