Newsgroup: it.comp.lang.delphi
Titolo: Calcoli...non renali :)

Ragazzi, sono un super-newbie che ha bisogno di aiuto :|
Praticamene devo calcolare un prezzo di un vetro in mq, cioè:
campo1: contiene altezza
campo2: contiene larghezza
campo3: contiene costo al mq
Il calcolo dovrebbe essere:
mq = campo1 * campo2 / 10000
e poi
valore = risultato * campo3
La difficoltà che sto avendo è soprattutto con la definizione del tipo
di variabile (real, single, ecc??)e come trattare i dati.
Qualcuno potrebbe aiutarmi per farmi capire?
Grazie in anticipo.

 ha scritto nel messaggio 
news:1175099009.1...@n59g2000hsh.googlegroups.com...


Il calcolo dovrebbe essere:

e poi


Tutte Currency non andrebbero bene? hai se ricordo bene 4 decimali fissi e 
la parte intera superdotata :-).
Ciao Giorgio

 ha scritto nel messaggionews:1175099009.1...@n59g2000hsh.googlegroups.com...

Graaaazie...ultimo problemino, ora i numeri sono tipo 33,12323 e
vorrei arrotondarli a 33,12, in vb c'è il
round(numero,posizionidecimali)...com'è in delphi?

round(numero,posizionidecimali)...com'è in delphi?
Vorrei dirti usa FormatCurr da inserire come parametro in StrToCurr, ma 
forse c'e' una funzione diretta che non conosco... nel qual caso ritirerei 
la bestemmia :-)
Giorgio

 round(numero,posizionidecimali)...com'è in delphi?
<Inizio cit. dall'help>
RoundTo
Rounds a floating-point value to a specified digit or power of ten
using "Banker's rounding".
<fine cit.>
Se vieni da VB, comunque, sarebbe meglio che tu dimenticassi
tutto quanto conosci ... e ripartissi da zero!
;-)
Qualche link che potrebbe esserti utile:
http://delphi.about.com/od/beginners/a/vb2delphi.htm
http://www.cyber-matrix.com/vb2delphi.html
http://delphi.about.com/library/vb2dhelpfiles.zip
Una volta che ti sei ambientato, potresti passare a:
http://www.delphibasics.co.uk/
che, malgrado il nome, non ha nulla a che vedere con VB.
Ciao
-- 
ACSH
[TurboDelphi]
Chi fa da se', fatica il doppio

la parte intera superdotata :-).
Per dati che non sono valori in moneta, il Currency non deve essere
usato per coerenza logica.  Nel caso di grandezze come altezza,
lunghezza, ecc..., può essere usato il Double, per il resto (costo,
prezzo, ecc...) il Currency.

"Andrea Laforgia" <a.laf...@andrealaforgia.it.invalid> ha scritto nel 
messaggio news:4qcl0350ab38bkc7u...@4ax.com...

Data la precisione decimale che gli serve il Currency va bene, anzi meglio 
dei float, in quanto sei sicuro che se fai 1-1 risulta 0 e non 23 E-56???
Ciao Giorgio 

Allora, qui sotto c'è il codice che attualmente mostra i numeri  tipo
99,010122 mentre dovrebeb mostrare 99,01
-------------
procedure TfrmNuoFatt.aeffChange(Sender: TObject);
var
  af: Integer;
  lf: Integer;
  mq,mmq,pu,pr,prezzoriga: Currency;
  begin
  af := StrToInt(aeff.Text);
  Afatt.Text := IntToStr(af + 4);
  lf := StrToInt(aeff.Text);
  pu := StrToCurr(pruni.Text);
  mq := (af * lf);
  mmq:= mq / 10000;
  mquad.Text:=FloatToStr(mmq);
  pr := (mmq * pu);
  prig.Text := FloatToStr(pr);
end;
--------------
af=altezza fatturata
lf=larghezza fatturata
pu=prezzo unitario
mq=metri quadri (ho usato anche mmq perchè non riuscivo a fare af*lf/
10000)
pr=prezzo riga
Cosa devo fare per fare in modo che il tutto funzioni?

in quanto sei sicuro che se fai 1-1 risulta 0 e non 23 E-56???
Sì. Usare il Currency, peraltro, non elimina del tutto i problemi di
round-off.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Cosa devo fare per fare in modo che il tutto funzioni?
Non funziona già ? 
Aggiungi il RoundTo(pr,-2) e sei a posto.
Ciao
-- 
Morde


Ma il RoundTo in Delphi5 non funziona o quanto meno non lo riporta
nell'help.