FAQ |
Kalender |
![]() |
#1 | |||
|
||||
Flitig postare
|
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 |
|||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Banned
|
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 |
||
![]() |
![]() |
![]() |
#3 | ||
|
|||
Klarade millennium-buggen
|
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 |
||
![]() |
![]() |
![]() |
#4 | |||
|
||||
Flitig postare
|
också använd decimal istället för double när du räknar med pengar
|
|||
![]() |
![]() |
Svara |
|
|