Newsgroup: it.comp.lang.c
Titolo: Casting?

#include<stdio.h>
int main()
{
 int intero=3;
 printf("\t%f\n", (float)intero/2); /* Tra parentesi cio' che forzo */
return 0;
}
Perché ottengo come risultato 1.500000 invece di 1 ? eppure il (float)
è in casting! HELP!
grazie.

 wrote

se tu hai due interi: intero e 2 e fai intero/2 il risultato e' 1 (3/2)!
se dici che uno dei due deve essere un float (nel tuo caso intero) allora il
risultato sara' un float 1.5!!!
Non so cosa tu voglia dire con "eppure il (float) è in casting! " ma credo
che tu non abbia chiaro quasi nulla, visto che la tua frase non ha senso.
Forse volevi fare :
printf("\t%f\n", (float)(intero/2));
Allora ottieni 1! In questo modo dividi due interi (non un float ed un
intero come facevi tu) e poi il risultato intero: 1, lo trasformi in float,
sempre 1.
Nota che (float)intero/2 e float(intero)/2 sono la stessa cosa!!! Entrambi
agiscono su intero, non sul risultato dell'operazione dei due (e' questione
di precedenza di operatori).
Se vuoi agire sul risultato devi mettere il risultato tra parentesi come ti
ho fatto vedere sopra. e... dovuto a quello che ti ho detto appena ora,
un'altra valida alternativa sarebbe:  float(intero/2). Entrambe vanno bene:
float(intero/2) e (float)(intero/2).
Spero di esserti stato di aiuto. Se hai ancora problemi fammi un fischio!
Tommy

printf("\t%f\n", (float)(intero/2));
funziona, grazie!

 Tutto qui! avranno sbagliato a scrivere il listato!
Che libro e'?
Che senso ha fare una cosa del genere? Forse piu' che aver sbagliato il
listato hanno sbagliato a riportare l'output generato!
Che senso ha far vedere che mettendo a float rimane 1, ha senso far vedere
che da 1 diventa 1.5! In pratica credo che il listato sia giusto, sbagliato
invece la riga che riporta l'output.
Ad ogni modo che libro e' che al capitolo 20 tratta di casting?
Tommy


ma è lo stesso libro dove ti dicevano di usare stdout.h (che non esiste) e
di scrivere una cosa del genere :
printf():"string" (che non ho mai visto e credo proprio che non esista)???
Dicci su quale libro leggi 'ste cose!
 -----= Posted via Newsfeed.Com, Uncensored Usenet News =-----
http://www.newsfeed.com
 - The #1 Newsgroup Service in the World!
-----== 100,000 Groups! - 19 Servers! - Unlimited Download! =-----
 

Dicci su quale libro leggi 'ste cose!
Un libro scaricato da internet :( quasi quasi compro qualcosa di
meglio!

quasi quasi compro qualcosa di meglio!
Hai proprio ragione:
"The C Programming Language, 2nd Edition"  
di Kernighan B.w. / Ritchie D.m.  
"C A Reference Manual, 5th Edition" 
di Harbison S.p. / Steele G.l. 
"C Didattica E Programmazione"
di Kelley A. / Pohl I. 
-- 
Andrea Laforgia
#exclude <windows.h>

Per curiosità, che libro è (vuoi vedere che è "Tricky C") ?
bingo! è per caso pieno d'errori?

bingo! è per caso pieno d'errori?
"Da:Andrea Laforgia (
andrea_...@bigfoot.com
)
Soggetto:Tricky C : le mani nei capelli !!! 
Newsgroups:it.comp.lang.c
Data:1999/06/12 
Ho scaricato l'ultima versione di Tricky C, uno dei manuali piu'
utilizzati (a quanto pare) dai neofiti del linguaggio, alcuni dei
quali frequentano anche questo ng.
Ritengo, sinceramente, che alcune delle discussioni piu' infuocate qui
dentro nascano anche dai cattivi consigli e suggerimenti che danno gli
autori dei diversi manuali da quattro soldi e cosi' ho deciso di
scorrere qualche pagina del libro.
Risultato : non c'era pagina in cui non fossi costretto a mettermi le
mani nei capelli...
La mia opinione personale e' che non sia affatto un testo dal quale si
possa imparare il linguaggio C, anche perche' non e' aggiornato allo
standard e si fossilizza totalmente sul C Borland.
Per non parlare della trattazione dei tipi di dati e tutto il resto.
Non so se qualcun altro di voi l'ha gia' sfogliato, ma secondo me
sarebbe il caso di scrivere un "Annotated Tricky C" (;) tanto per
rendere l'autore consapevole della marea di errori e imprecisioni che
ci ha inserito."
