Kom ihåg mig?
Home Menu

Menu


behöver hjälp med ett litet script

Ämnesverktyg Visningsalternativ
Oläst 2011-03-25, 22:51 #1
nabil_akhlaques avatar
nabil_akhlaque nabil_akhlaque är inte uppkopplad
Flitig postare
 
Reg.datum: Aug 2007
Inlägg: 446
nabil_akhlaque nabil_akhlaque är inte uppkopplad
Flitig postare
nabil_akhlaques avatar
 
Reg.datum: Aug 2007
Inlägg: 446
Question behöver hjälp med ett litet script

Hejsan,
skulle behöva lite hjälp med att lösa denna script.
För någon anledning får jag 'dPaysonFee' till 100, när svaret egentligen borde bli 6.
felet ligger vid ' (dDonationAmount * 0.03) + 3.00' som räknar ut detta till 100, när det egentligen bör vara 6... :S

iDonationAmount = 100;
double dDonationAmount = double.Parse(iDonationAmount.ToString());
double dPaysonFee = (dDonationAmount * 0.03) + 3.00;
dDonationAmount = dDonationAmount - dPaysonFee;
iDonationAmount = int.Parse(dDonationAmount.ToString());

skulle också uppskatta om någon kunde hjälpa dig att göra den mindre... känns rätt krångligt script för sån liten sak...

Senast redigerad av nabil_akhlaque den 2011-03-26 klockan 13:51
nabil_akhlaque är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-03-26, 00:08 #2
hnn hnn är inte uppkopplad
Banned
 
Reg.datum: Mar 2004
Inlägg: 2 587
hnn hnn är inte uppkopplad
Banned
 
Reg.datum: Mar 2004
Inlägg: 2 587
Dags att gå om årskurs 4, 5 och 6? :-)
Enkel matematik.

( 100 * 0,03 ) = 3
3 - 3 = 0.

(Remsa från Kalkylatorn:
Kod:
(100*0.03)-3
=0
)
hnn är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-03-26, 00:22 #3
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Blandning av heltal och double om jag inte tolkar bilden helt fel.

Ser ut att vara Java-kod:

Kod:
// Declaration and defaults
double dblDonationAmount=0;
double dblPaysonFeeSEK=0;
double dblPaysonFeePercent=0.03;
double dblPaysonFeeMinimum=3.00;
double dblReceivedAmount=0;

// Calculation of PaysonFees
dblDonationAmount = double.Parse(dblDonationAmount.ToString());
dblPaysonFeeSEK = (dDonationAmount * dblPaysonFeePercent) + dblPaysonFeeMinimum;
dblReceivedAmount= dblDonationAmount - dblPaysonFeeSEK;

Det stora felet var att du drog bort minimiavgiften från avgiftsvariabeln, så jag bytte i princip tecken från minus till plus, sen har jag rensat bort heltalsvariabler som inte verkade tillföra någon nytta.

Min rekommendation är att du bryter ut detta till en egen klass som du kallar PaysonAPI eller så och att du lyfter bort parseanropet och i stället skickar in färdigparsat data i en double-deklarerad variabel som parameter till en Beräkningsmetod.

Blanda inte ihop användargränssnitt med affärsregler på detta sätt som skett med att ha parsefunktioner ihop med beräkningar av avgifter. Om du separerar användargränssnittet så kan du ha gränssnittsrelaterad felhantering där och annan felhantering inne i beräkningarna som bättre passar där.

Återanvänd inte variabler så värdet inte stämmer med namnet på variabeln (dblDonationAmount ), jag bytte namnet på slutvariabeln till dblReceivedAmount så det beskriver vad den innehåller.

Senast redigerad av Conny Westh den 2011-03-26 klockan 00:55
Conny Westh är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-03-26, 00:49 #4
gooses avatar
goose goose är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2007
Inlägg: 451
goose goose är inte uppkopplad
Flitig postare
gooses avatar
 
Reg.datum: Jun 2007
Inlägg: 451
också använd decimal istället för double när du räknar med pengar
goose är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 03:17.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017