devotionMedlem sedan jan. 20013 582 inlägg 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 fDiscountPct = fDiscountPct * (1-fExtraDiscountPct) + fExtraDiscountPct
devotionMedlem sedan jan. 20013 582 inlägg Hmmm.... Nu fattar jag ingenting... :)
Peter SMedlem sedan dec. 20025 483 inlägg 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
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
devotionMedlem sedan jan. 20013 582 inlägg 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