Avatar billede Slettet bruger
27. oktober 2006 - 10:54 Der er 9 kommentarer og
1 løsning

Modulus udregning

Hejsa,

Jeg er ved at lave noget ordre-administration, hvor en ordre skal skrives ud til en pdf-fil og samtidig skal der genereres en indbetalingsstreng.

// **********************************************************
    // GetPaymentString() - Genererer streng til giro-indbetaling
    // **********************************************************
    private static string GetPaymentString(string orderId)
    {
        // Generer delen med fakturanummeret
        string invoiceString = "000000000000000";
        int invoiceIdLenght = orderId.Length;

        invoiceString = invoiceString.Remove(invoiceString.Length - invoiceIdLenght, invoiceIdLenght);
        invoiceString = invoiceString + orderId;

        // Sæt kontrolkode og kreditorId på strengen
        invoiceString = "+71< " + invoiceString + "+" + "89536081";

        return invoiceString;
    }

Ovenstående kode virker fint, altså der genereres en streng som kan indtastes/kopieres ind i fx. netbank og den vej indbetales.

Nu har jeg så fået at vide fra bankens side, at der i denne streng - midterste felt skal være et kontrolciffer.

Dette skal udregnes på følgende måde.

"Kontrolcifret udregnes ved at gange det 14. ciffer med 2, det 13. med 1, osv. jf.
nedenstående eksempel. Hvis summen af en udregning bliver 10 eller derover,
adderes de 2 cifre i summen, således at det nye tal - tværsummen - bliver mindre
end 10.

Tværsummen adderes med de resterende summer under 10 til et tal, der anvendes
som tæller.
Tælleren divideres med 10 - modulus. Kontrolcifret er lig med 10 minus resten
fra divisionen. Hvis resten fra divisionen er nul, bliver kontrolcifret "0".
Betalingsident.: 0 2 6 8 4 0 1 4 9 9 6 5 3 2
Vægttal: 1 2 1 2 1 2 1 2 1 2 1 2 1 2
Summer: 0 4 6 16 4 0 1 8 9 18 6 10 3 4
Tæller: 0 +4 +6 +7 +4 +0 +1 +8 +9 +9 +6 +1 +3 +4=62
Tæller/modulus 62/10 = rest = 2
Kontrolciffer 10 - 2 = 8"

Undskyld hvis det bliver meget langt, men mit spørgsmål er så. Hvordan laver jeg en modulus?

Jeg ved godt jeg er nødt til at finde en løsning på selve beregningen selv, men kan ikke gennemskue om .NET har indbygget noget til beregning af modulus 10.
Avatar billede dr_chaos Nybegynder
27. oktober 2006 - 10:59 #1
int i = 5%2;
med %
Avatar billede dr_chaos Nybegynder
27. oktober 2006 - 10:59 #2
procenttegn er modulus i c#
Avatar billede dr_chaos Nybegynder
27. oktober 2006 - 11:04 #3
Avatar billede benson Nybegynder
27. oktober 2006 - 11:18 #4
Jeg har lige lavet en funktion i VB til det samme. Altså en modulus10 kontrolciffer beregning. Og det virker sgu :)

Jeg kan poste den her når jeg kommer hjem, hvis du er interesseret. Tænkte at du nok selv kunne konvertere det til C# ?

Benson
Avatar billede Slettet bruger
27. oktober 2006 - 12:47 #5
Tak for kommentarer!

Det jeg er interesseret i er, at beregne resttallet fra en division.
Lad os sige at jeg lægger 14 tal sammen og får 62.

De 62 divideres med 10, som jg giver 6,2.
Det er så i dette tilfælde ,2 jeg er interesseret i, da dette tal er resttallet.

Hvordan beregner jeg dette i C#?
Avatar billede Slettet bruger
27. oktober 2006 - 13:07 #6
Nu har jeg den :-)
Tak for hjælpen!

dr_chaos, lægger du lige et svar?
Avatar billede dr_chaos Nybegynder
27. oktober 2006 - 13:10 #7
Så er det ikke modulus du skal bruge.
fordi 62%10 giver 2
double i = Convert.ToDouble(62) / Convert.ToDouble(10); <--6,2
        System.Diagnostics.Debug.WriteLine(i%1);<--giver 0,2
Avatar billede dr_chaos Nybegynder
27. oktober 2006 - 13:10 #8
svar :)
Avatar billede Slettet bruger
27. oktober 2006 - 13:21 #9
Tak for linket .-)
Avatar billede dr_chaos Nybegynder
27. oktober 2006 - 13:23 #10
np tak for points :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester