Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22

Discussione: [C] Arrotondare Numeri

  1. #1

    [C] Arrotondare Numeri

    eheheheh lol sarò la vostra croce! MUAHAHAH

    --- :P

    ho un numero...ad esempio

    96.8

    che deve diventare 96

    (insomma...la parte decimale se ne deve andare ^^)

    codice:
    #define TMPBUFFER_SIZE 1024
    
    int main(....) {
      int cicles;
      int remain;
      .
      .
      .
      cicles = file_info.st_size / TMPBUFFER_SIZE;
      remain = file_info.st_size - (cicles * TMPBUFFER_SIZE);
      .
      .
      .
    }
    va bene? oppure devo usare qualke funzione?

  2. #2
    Utente di HTML.it L'avatar di Poker1
    Registrato dal
    Jul 2002
    Messaggi
    479
    Hem...hum...

    codice:
    void main()
    {
         double primo_n = 96.8;
         int conver = primo_n;
    }
    Ho detto una bischerata?
    Non riscrivere la ruota, usa le librerie.
    by Bjarne Stroustrup
    EIDON SOFT MEMBER

  3. #3
    era giusto come avevo postato

    l'altro modo non ho provato ma prob funzica

    ^^

    forse

    int conver = (int) primo_n;

    xo nun zo

  4. #4
    Utente di HTML.it L'avatar di Poker1
    Registrato dal
    Jul 2002
    Messaggi
    479
    Si si, se gni dici pure (int) fai una conversione esplicita quindi taglia la parte decimale
    Non riscrivere la ruota, usa le librerie.
    by Bjarne Stroustrup
    EIDON SOFT MEMBER

  5. #5
    Utente di HTML.it L'avatar di infinitejustice
    Registrato dal
    Nov 2001
    residenza
    Barcelona
    Messaggi
    772
    se no a voler fare gli sborooooooni potresti usare quella funzione della libreria matematica che arrotonda all'intero piu grande e poi fai -1.

    Se nn ricordo male era ceil()


    No va beh troncalo :metallica
    Live fast. Troll hard.
    Pythonist | Djangonaut | Puppeteer | DevOps | OpenStacker | Lost in malloc
    Team Lead @Gameloft Barcelona

  6. #6
    ceil lo arrotonda al numero superiore

    floor lo arrotonda al numero inferiore



    ma...

    ceil:
    int num=(int) numero_double+1;

    floor
    int num=(int) numero_dobule;

    credo che questo sia =

  7. #7
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    Se lo converti in int togli semplicemente la parte decimale!
    Quindi va bene!

  8. #8
    e se io lo volessi arrotondare in modo automatico al maggiore o minore a seconda del decimale come faccio?

  9. #9
    Originariamente inviato da TestaDiMucca
    e se io lo volessi arrotondare in modo automatico al maggiore o minore a seconda del decimale come faccio?
    Daniele usa il casting da float a int che la soluzione migliore.

    Xtestadimucca: basta fare un controllo if/then/else e valutare dopo la virgola

    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  10. #10
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    Esistono modi + efficenti...

    codice:
    int arrotonda(float n)
    {
        return (int) n + 0.5;
    }
    Perchè:
    se n % 1 >= 0.5 allora int(n+0.5) = n+1
    altrimenti int(n+0.5) = n

    senza neanche un if() :bubu:

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.