Forum: decimal?

Forum huvudsida -> Programmering -> decimal?

Sidor: 1

Till botten

eva 07:45 - 26:e Juli 2006 | Post #1
Medlem
Inlägg: 3


Skicka PM
hej

hur gör man för att avgöra om det är ett decimaltal

om man tex räknar tal1/tal2 o vill veta om svaret blir ett decimaltal. Hur gör man? finns det någon funktion man kan använda eller något smart sätt att räkna på?



-------------------------
Ingen signatur!



Nissebosselasse 10:13 - 26:e Juli 2006 | Post #2
Medlem
Inlägg: 490


Skicka PM
Alla divisioner som går jämnt upp, har ingen rest. Det vill säga:
  • 10 / 5 = 2 (rest: 0)
  • 10 / 2 = 5 (rest: 0)

Du kan ju kolla om du får någon rest vid divisionen, för att avgöra om det är ett decimaltal:
  • 10 / 4 = 2 (rest: 2)

Vilket språk använder du? Restfunktionen kallas modulus, och skrivs lite olika i olika programmeringsspråk. Kom ihåg att resultatet från funktionen är resten av divisionen.
I C/C++ skrivs den med procenttecknet (%):
  • 10 % 5 = 0
  • 10 % 4 = 2

  1.  
  2. int main ()
  3. {
  4. int tal1 = 10;
  5. int tal2 = 5;
  6.  
  7. if (tal1 % tal2 == 0) {
  8. // Divisionen gick jämnt upp
  9. } else {
  10. // Ett decimaltal (det blev en rest)
  11. }
  12. }


-------------------------
http://pushingcows.se
Gula Nallen



eva 07:59 - 27:e Juli 2006 | Post #3
Medlem
Inlägg: 3


Skicka PM
Tack för svar!

Finns det något smart sätt att räkna ut det om man använder andra räknesätt??

språket är c++

-------------------------
Ingen signatur!



Nissebosselasse 10:21 - 27:e Juli 2006 | Post #4
Medlem
Inlägg: 490


Skicka PM
Tja, du kan ju alltid "kasta om" (type-casting) talet du vill kolla till en heltalstyp (int), och jämföra detta med sig själv.

Exempel:
  1. // Variabeln tal1 är av typen 'float',
  2. // och har redan fått ett värde som vi
  3. // inte vet om.
  4. // Vi jämför dess aktuella värde, med
  5. // dess heltalsvariant genom att
  6. // kasta om typen.
  7. if (tal1 == int(tal1)) {
  8. // Det är ett heltal
  9. } else {
  10. // Flyttal (decimaltal)
  11. }


Här är ett längre program som frågar efter två decimaltal, och som sedan skriver ut om resultatet efter en addition blir ett heltal eller ej:
  1. #include <iostream>
  2. using std::cout;
  3. using std::cin;
  4. using std::endl;
  5. bool isInteger (float number)
  6. {
  7. return (number == int(number));
  8. }
  9. int main (int argc, char *argv[])
  10. {
  11. float tal1 = 0.0f,
  12. tal2 = 0.0f;
  13. cout << "Skriv in flyttal ett: ";
  14. cin >> tal1;
  15. cout << "Skriv in flyttal två: ";
  16. cin >> tal2;
  17. cout << endl;
  18. cout << "Addition: " << tal1+tal2 << endl << endl;
  19. cout << "Heltal? " << (isInteger(tal1+tal2) ? "JA" : "NEJ") << endl;
  20. return 0;
  21. }


EDIT: hade döpt funktionen lite knasigt...rättat nu Smiley

-------------------------
http://pushingcows.se
Gula Nallen

Senast redigerad 12:37 - 27:e Juli 2006


eva 09:38 - 28:e Juli 2006 | Post #5
Medlem
Inlägg: 3


Skicka PM
Tackar!
Smiley

-------------------------
Ingen signatur!



Sidor: 1

Forum huvudsida -> Programmering -> decimal?
Atom feed

Du får inte posta i den här tråden | Till toppen