0Pricing
C Academy · Lezione

Arrotondamenti e valori assoluti

floor, ceil, round, fabs.

Arrotondamenti e valori assoluti è una lezione C Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento C Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso C Academy include 4 lezioni in totale.

Arrotondamento e valori assoluti

Questa lezione tratta le funzioni che modificano i numeri: floor, ceil, round e trunc per l'arrotondamento, oltre a fabs per il valore assoluto.

Si trovano tutte in math.h e lavorano con valori di tipo double.

La funzione floor

floor(x) arrotonda per difetto al numero intero più vicino, procedendo verso meno infinito.

Quindi floor(3.9) è 3.0 e floor(-1.2) è -2.0.

#include <stdio.h>
#include <math.h>

int main(void) {
    printf("%.1f\n", floor(3.9));
    printf("%.1f\n", floor(-1.2));
    return 0;
}

La funzione ceil

ceil(x) arrotonda per eccesso al numero intero più vicino, procedendo verso più infinito.

Quindi ceil(3.1) è 4.0 e ceil(-1.8) è -1.0.

#include <stdio.h>
#include <math.h>

int main(void) {
    printf("%.1f\n", ceil(3.1));
    printf("%.1f\n", ceil(-1.8));
    return 0;
}

La funzione round

round(x) arrotonda al numero intero più vicino. I valori esattamente a metà vengono arrotondati allontanandosi da zero.

Quindi round(2.5) è 3.0 e round(2.4) è 2.0.

#include <stdio.h>
#include <math.h>

int main(void) {
    printf("%.1f\n", round(2.5));
    printf("%.1f\n", round(2.4));
    return 0;
}

La funzione trunc

trunc(x) semplicemente elimina la parte decimale, procedendo sempre verso zero.

Quindi trunc(3.9) è 3.0 e trunc(-3.9) è -3.0.

#include <stdio.h>
#include <math.h>

int main(void) {
    printf("%.1f\n", trunc(3.9));
    printf("%.1f\n", trunc(-3.9));
    return 0;
}

Confrontare le quattro funzioni

Per il valore 2.7 i risultati sono diversi:

  • floor(2.7) = 2.0 (per difetto)
  • ceil(2.7) = 3.0 (per eccesso)
  • round(2.7) = 3.0 (al più vicino)
  • trunc(2.7) = 2.0 (verso zero)

Scelga la funzione che corrisponde al risultato desiderato.

Valore assoluto con fabs

fabs(x) restituisce il valore assoluto di un numero in virgola mobile: la distanza da zero, sempre non negativa.

Quindi fabs(-7.5) è 7.5.

#include <stdio.h>
#include <math.h>

int main(void) {
    printf("%.1f\n", fabs(-7.5));
    printf("%.1f\n", fabs(7.5));
    return 0;
}

fabs e abs a confronto

Faccia attenzione: abs (da stdlib.h) funziona sugli interi, mentre fabs (da math.h) funziona sui valori di tipo double.

Usare abs su un double eliminerebbe prima i decimali. Per i numeri in virgola mobile, usi sempre fabs.

Convertire in int

Queste funzioni restituiscono un double. Per memorizzare un numero intero in un int, esegua il cast del risultato.

È più sicuro usare prima round e poi eseguire il cast, così valori come 2.999 non diventano accidentalmente 2.

#include <stdio.h>
#include <math.h>

int main(void) {
    double x = 4.6;
    int whole = (int)round(x);
    printf("whole = %d\n", whole);
    return 0;
}

Un esempio con le distanze

fabs è utile per misurare la distanza tra due valori, indipendentemente da quale sia il maggiore.

Qui troviamo la differenza tra due temperature.

#include <stdio.h>
#include <math.h>

int main(void) {
    double a = 5.0, b = 12.5;
    printf("gap = %.1f\n", fabs(a - b));
    return 0;
}

Arrotondare ai decimali

Per arrotondare a due cifre decimali, moltiplichi per 100, applichi round e poi divida per 100.

Questo metodo usa round per mantenere ordinati i valori monetari.

#include <stdio.h>
#include <math.h>

int main(void) {
    double price = 3.14159;
    double r = round(price * 100.0) / 100.0;
    printf("%.2f\n", r);
    return 0;
}

Verifica rapida

Ricordi come si comporta ciascuna funzione di arrotondamento.

Riepilogo

Ha imparato a usare floor (per difetto), ceil (per eccesso), round (al più vicino) e trunc (verso zero), oltre a fabs per il valore assoluto dei double.

Ricordi di usare fabs invece di abs per i numeri in virgola mobile e di eseguire il cast a int quando serve un numero intero. Ottimo lavoro: ha completato il corso su math.h!

Domande Frequenti

La lezione «Arrotondamenti e valori assoluti» è gratuita?

Sì — il testo completo di «Arrotondamenti e valori assoluti» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso C Academy, passa a CoddyKit PRO. Il corso C Academy include 4 lezioni in totale.

Cosa imparerò in «Arrotondamenti e valori assoluti»?

floor, ceil, round, fabs. Eserciti C Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare C Academy?

Non è richiesta alcuna esperienza precedente. C Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Arrotondamenti e valori assoluti»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione C Academy?

Sì. Ogni lezione C Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Includere math.h
  2. Potenze e radici
  3. Trigonometria e logaritmi
  4. Arrotondamenti e valori assoluti
← Torna a C Academy