Innanzitutto grazie a tutti!
Poi, come dice Samuele_70, non e' questione di visualizzazione. So bene che quello che succede e' necessario e inevitabile (non esiste nella realta' dei calcoli il continuo dei numeri reali), e anche in qualche modo "compilatore-depending". Ma il punto e': come affrontare nel modo piu' saggio/semplice/proficuo il problema? Mi spiego meglio: nell'esempio che vi ho proposto, i valori Xmax, Xmin sono costanti numeriche, cosi' come pure Xn e nX, ma in realta' Xmax e Xmin sono variabili, calcolate nel programma a partire da dati di input, e cosi' pure sono Xn e nX. Inoltre, nX e' utilizzato nel corso del programma, ed e' importante che abbia il valore "esatto". Quello che succede e' proprio quanto descritto da tia86: la mantissa del float contiene un numero tipo 1.339999 (per 10^2), il printf riconosce l'evidente errore di approsimazione (e scrive Xn = 134.000000), mentre il casting (ovviamente) prende la parte intera (133).
Cosa conviene fare in questi casi/di solito come si procede? Scrivere una routine che, dato un numero reale, ne esegue l'approssimazione (e non l'operazione "parte intera"), cioe' es. 133.2 --> 133 ma 133.5 (e 133.9999)--> 134 ? Esistono soluzioni standard per questi casi, o solo "fai-da-te" (tipo struttura if e confronto)? Altro? Cosa fareste?
Grazie!