Renoverare
· Stockholm
· 19 577 inlägg
Ni som är duktiga på allt kring detta kan ni veirifera att jag inte glömt något
edit: hade glömt dra av försälningskostnad från inkomsteerna
//New real estatevar purchasePrice = <insert>m;var paidDownPayment = <insert>m;var existingPantBrev = <insert>m;var lagFart = purchasePrice * 0.015m;//Old real estatevar soldFor = <insert>m;var existingLoan = <insert>m;var saleCosts = <insert>m;var improvementCosts = <insert>m;var postponedAmount = 3000000m;var purchasePriceOld = <insert>m;var tax = (soldFor - purchasePriceOld - saleCosts - improvementCosts-postponedAmount) * 0.22m;var savings = <insert>m;var calculatedLoan = (purchasePrice-paidDownPayment)*0.5m;decimal deviation;do{ var pantBrev = (calculatedLoan - existingPantBrev) * 0.02m; var remainingToPay = purchasePrice - paidDownPayment-savings; var moneyFromOldEstate = soldFor - tax - existingLoan - pantBrev - lagFart-saleCosts; var loan = remainingToPay - moneyFromOldEstate; deviation = calculatedLoan - loan; calculatedLoan = loan;} while (Math.Abs(deviation) > 0.000001m);Console.WriteLine($"Lånet blir {Math.Round(calculatedLoan):C}");edit: hade glömt dra av försälningskostnad från inkomsteerna
Redigerat:
Du definierar en variabel (postponedAmount ) som inte används i resten av programmet.
Sen undrar jag lite över din loop. Den kommer att göra saker första varvet men sen sker ingen förändring i beräkningarna så om villkoret inte är uppfyllt första varvet och den ska köra en gång till så kommer den aldrig att sluta. (iaf så vitt jag kan tolka koden...
)
Sen undrar jag lite över din loop. Den kommer att göra saker första varvet men sen sker ingen förändring i beräkningarna så om villkoret inte är uppfyllt första varvet och den ska köra en gång till så kommer den aldrig att sluta. (iaf så vitt jag kan tolka koden...
Renoverare
· Stockholm
· 19 577 inlägg
Snyggt, den försvann när jag gjorde en ändringT Testarn skrev:Du definierar en variabel (postponedAmount ) som inte används i resten av programmet.
Sen undrar jag lite över din loop. Den kommer att göra saker första varvet men sen sker ingen förändring i beräkningarna så om villkoret inte är uppfyllt första varvet och den ska köra en gång till så kommer den aldrig att sluta. (iaf så vitt jag kan tolka koden...)
Det viktiga från före och i loopen
var calculatedLoan = (purchasePrice-paidDownPayment)*0.5m; //Uppskattat lån//loopvar pantBrev = (calculatedLoan - existingPantBrev) * 0.02m; //Första vändan berälnas pantbrev på uppskattat låndeviation = calculatedLoan - loan; //Avikelse från förra vändancalculatedLoan = loan; //Spar ny uträknad lån} while (Math.Abs(deviation) > 0.000001m); kör koden till avikelse är accepterbar
Moderator
· Stockholm
· 56 233 inlägg
Du får kanske förklara lite hur du tänker (saknar kommentarer i koden).
tax, där bör du väl göra avdrag för lagfartsavgifter som du betalade när du köpte.
Vad har pantbrev och lagfart med moneyFromOldEstate att göra? Borde väl läggas till remainingToPay?
tax, där bör du väl göra avdrag för lagfartsavgifter som du betalade när du köpte.
Vad har pantbrev och lagfart med moneyFromOldEstate att göra? Borde väl läggas till remainingToPay?
Renoverare
· Stockholm
· 19 577 inlägg
Snurran är ju rätt hårt kopplat till min situaion. Jag har inget pantberv eller lagfart på bef då det är en brf.H hempularen skrev:
Jag drar av pantbrev och lagfart då dessa ska betalas. Men kanske mer semantiskt korrekt lägga dem på remainingToPay istället. Utfallet blir samma
Jag som är uppvuxen med C hatar verkligen var som variabel, men annars kan jag titta lite i helgen, sitter och kompilerar C# nu så man får en stund väntan ibland
Renoverare
· Stockholm
· 19 577 inlägg
Moderator
· Stockholm
· 56 233 inlägg
Jag inser att det ger samma resultat, men för läsligheten bör det ju läggas på rätt ställe, tycker jag. Det hade aldrig klarat en kodgranskning i vårt projekt där jag har uppdrag nu.AndersMalmgren skrev:
Jag gillar inte heller Linq, men man måste anpassa sig, nån annan äger företaget sen rätt länge så jag kan tyvärr inte bestämma, bara komma med förslag. Jag vill göra allt från grunden och vill använda vad det kallas hungarian notation. Den behöver inte vara helt korrekt men för att direkt se om det är sträng, heltal , flyttal eller nån array utan att behöva ha romaner till namn eller förlita sig på miljön man använder. Men jag lär väl vara en dinosaurie i detta .AndersMalmgren skrev:
Renoverare
· Stockholm
· 19 577 inlägg
Hur kan du inte gilla Linq. Mycker mer läsbar kodV Ville_Vessla skrev:Jag gillar inte heller Linq, men man måste anpassa sig, nån annan äger företaget sen rätt länge så jag kan tyvärr inte bestämma, bara komma med förslag. Jag vill göra allt från grunden och vill använda vad det kallas hungarian notation. Den behöver inte vara helt korrekt men för att direkt se om det är sträng, heltal , flyttal eller nån array utan att behöva ha romaner till namn eller förlita sig på miljön man använder. Men jag lär väl vara en dinosaurie i detta .
Om man inte förstår vad en variabel har för datatyp eller att det är relevant för att förstå koden så behöver koden skrivas om för att vara mer läsbar.
Likadant med kommentarer, behöver koden kommentarer så bör den skrias om så den är mer förstålig. Nu skrev jag två kommentarer ovan för detta är inte produktionskod utan en snabb snippet jag skrev.
Om nan måste skriva en kommentar så ska det vara varför man gjorde en viss grej inte hur. Hur är koden.
Moderator
· Stockholm
· 56 233 inlägg
I sådana här sammanhang kanske "var" duger, Men i verkliga livet behöver man ha bättre koll på vad det är för datatyper man hanterar, och ha koll på hur olika typer beter sig vad gäller avrundningar (ex. så avrundas -2,5 till heltal olika av olika kompilatorer, found the hard way).AndersMalmgren skrev:
Även trunkeringar. För många år sedan hittade jag en bugg i signalbehandlingskod (jag skriver inte algoritmer, men implementerar ex. dataflöde till och från filter/equalizer algoritmer). En kille hade implementerat en integrator (energidetektor/ lågpass filter), genom att ta en ström av flyttals samples, stoppa in dem i en ringbuffert med 256 element. varje sample kvadrerades (spänning till energi) och adderades till ett ackumulatorregister. samtidigt tog man bort det äldsta samplet ur bufferten och subtraherade det från ackumulator registret (kvaderart). Ackumulatorn innehåller då summan av energi från 256 samples. Lätt att förstå.
Nåväl vad händer då om vi får en ström med en miljard noll samples, följt av en mijard samples med hög energi, och sedan ytterligare en miljard noll samples. Till slut bör det ju vara noll energi eller hur?
Ledtråd: flyttal
Någon som kommer på "haken"?
Renoverare
· Stockholm
· 19 577 inlägg
I alogritmer och maskinkod close to the metal sure. Men i vanlig domänkod behövs det ej. där är det bara negativt. Och du kan alltid se typen via IDE.H hempularen skrev:I sådana här sammanhang kanske "var" duger, Men i verkliga livet behöver man ha bättre koll på vad det är för datatyper man hanterar, och ha koll på hur olika typer beter sig vad gäller avrundningar (ex. så avrundas -2,5 till heltal olika av olika kompilatorer, found the hard way).
Även trunkeringar. För många år sedan hittade jag en bugg i signalbehandlingskod (jag skriver inte algoritmer, men implementerar ex. dataflöde till och från filter/equalizer algoritmer). En kille hade implementerat en integrator (energidetektor/ lågpass filter), genom att ta en ström av flyttals samples, stoppa in dem i en ringbuffert med 256 element. varje sample kvadrerades (spänning till energi) och adderades till ett ackumulatorregister. samtidigt tog man bort det äldsta samplet ur bufferten och subtraherade det från ackumulator registret (kvaderart). Ackumulatorn innehåller då summan av energi från 256 samples. Lätt att förstå.
Nåväl vad händer då om vi får en ström med en miljard noll samples, följst av en mijard samples med hög energi, och sedan ytterligare en miljard noll samples. Till slut bör det ju vara noll energi eller hur?
Ledtråd: flyttal
Någon som kommer på "haken"?
Men nu flyter vi iväg från bostads försäljning/köp
Renoverare
· Stockholm
· 19 577 inlägg
Jag gillar inte fasta värden i koden, jag deklarerar alltid sådant som #define eller const eller vad nu språket har så man får ett namn att förstå vad värdet är för något.
AndersMalmgren skrev:
AndersMalmgren skrev:
AndersMalmgren skrev:
Renoverare
· Stockholm
· 19 577 inlägg
Man blir lat när man skriver små snurror för sig sig själv. Hade jag använt den på två ställen hade jag gjort det utan att tänka. const heter det i C#D Dilato skrev:
const decimal lagfartRate = 0.015m;edit: ms får fixa så man kan använda var här!
