jag har två integer som jag vill köra Modulo på, och sen få svarat som decimaltal. Gör så här: Tanken är att jag ska utföra en division med heltal. Om du räknar med heltal kan du väl inte räkna med att få något annat än heltal som svar! Dessutom är Modulo som följer Kan det här ge dig en idé om hur du kan lösa det? alltså om jag förstår dej rätt så vill du vid division av 7 med 3 få svaret 0,33.. ? Jag misstänker att ni alla har missuppfattat det. Vad jag tror är att det han ska göra är att "själv göra divisionen", mha modulus. Om jag förstår dig rätt så är det ju det jag gör i mitt exempel ovan. <b>Jag ska ta emot två heltal (int eller long) och sen med hjälp av funktionen modulo skriva ut eventuella decimaler.</b> Jan: Nej, då förstår du mig fel. Han gör uträkningen av decimaler själv, mha modulo, det är det problemet jag gissade på att det var. Du gör någon operation med modulo, och låter C# räkna ut vilka decimaler det är.Ang. en ConsoleApplication !!
Typ......
int intTalEtt = 1;
int intTalTva = 3;
Console.WriteLine(intTalEtt % intTalTva);
ska ge svaret 0,3333333333
Någon som vet hur man kan lösa detta ?
mvh
/RickySv: Ang. en ConsoleApplication !!
Jag antar att du vill utföra en division, inte en modulo.
int intTalEtt = 1;
int intTalTva = 3;
Console.WriteLine(intTalEtt / (double)intTalTva);
intTalTva konverteras då till en double -> divisionen blir en double, vilken skrivs ut.
Eller har jag missat något?
/AndreasSv: Ang. en ConsoleApplication !!
Jag ska ta emot två heltal (int eller long) och sen med hjälp av funktionen modulo skriva ut eventuella decimaler.
Med hjälp av en loop så ska endast de tio första decimalerna skrivas ut.
mvh
/RickySv: Ang. en ConsoleApplication !!
AndrecSv: Ang. en ConsoleApplication !!
1 Mod 3 = 1
2 Mod 3 = 2
3 Mod 3 = 0
4 Mod 3 = 1
5 Mod 3 = 2
o.s.v.
/mickeSv: Ang. en ConsoleApplication !!
<code>
int Tal1 = 1, Tal2 = 3, noOfDec = 10;
Console.WriteLine(Math.Round((Tal1 % Tal2)/(double)Tal2, noOfDec));
</code>
JanneSv: Ang. en ConsoleApplication !!
i så fall kan du antingen (tal1 % tal2) / (double) tal2
alternativt
(tal1/ (double) tal2) - tal1/tal2 Sv: Ang. en ConsoleApplication !!
Principen är i så fall något i stil med följande (och har naturligtvis inget med C# att göra):
int tal1, tal2, kvot, rest;
rest=tal1 % tal2;
kvot=tal1-rest;
while(rest!=0)
{
skrivut(kvot);
tal1-=kvot
rest=tal1 % tal2;
kvot=tal1-rest;
}
Har inte testat koden, men principen är iaf sån.
Edit:
Jag tänkte lite fel.
Lösningen påminner om koden, men man behöver åtminstone en heltalsdivision. algoritmen är istället:
kvot=tal1/tal2
rest=tal1%tal2
tal1=rest*b (där b är basen, i vårt fall 10).
Sv: Ang. en ConsoleApplication !!
//
JanneSv: Ang. en ConsoleApplication !!
Någon annan operation än modulo måste du väl ändå få använda, t.ex. subtraktion, multiplikation och heltalsdivision?
int taljare = 3, namnare = 7;
cout << taljare/namnare << '.';
taljare %= namnare;
for(int i=0; i<10; i++) {
taljare *= 10;
cout << taljare/namnare;
taljare %= namnare;
}
Sv: Ang. en ConsoleApplication !!
Och det är exakt det som Per Persson skriver (samma kod som min pseudokod).