Newsgroup: it.comp.lang.visual-basic
Titolo: If, go to? cerca intero

Un saluto a tutti,
In Excel sto impostando un programmino VB basato su polinomi, con solo
una formula:T.
Posto parte del listato:
A = 0.2
B = 1.5
valori della regressione:
D1 = -0.2512
D2 = 0.3282
D3 = ecc... ( sono un centinaio)
For W = 0.2 To  0.75 Step 0.05
For X  = 0.5  To 1.5 Step 0.1
                 ' qui iniziano i calcoli
                 ' (sono una ventina di operazioni per trenta righe)
y1= 12 + 5 * X + d1 ^3 * A * B ^2 * W * D37........
y2= varie come sopra
y3= idem ecc...
y = y1 + y2 + y3 + y4 +...
z1= ...
z2=...
z3=...
z = z1 + z2 + z3 +.....
                   ' e ottengo T
T = X * y / 3.14 * z
                  ' stampo nelle celle i vari T ottenuti
Cells... value = y
Cells... value  = z
Cells...  value = T
Next X
riga = 2
colonna = colonna + 3
Next W
E, sin qui è tutto giusto. Verificato.
Il T mi arriva con valori, per es. da 0.4946 a 0.50568, o da 0.7901 a
0.8178. Ed è un'approssimazione troppo ampia.
Dovrei trovare un sistema che mi torni pure dei T a cifre 0.500,
0.600,...0.800... 2.000, intere con un decimale.
Grazie in anticipo.
luca
ps. sono un pivellino...

0.600,...0.800... 2.000, intere con un decimale.
Prova con:
        T = Format(X * y / 3.14 * z, "0.0") & "00"
o
        T = Round(X * y / 3.14 * z, 1) & "00"
--
Ciao Fede
By Chicco Production
http://bcp.freetools.it

 Ciao Fede
Ok, ma ho visto che mi arrotondano il risultato, mentre io cercavo di
ottenere, dato T = 0.5, 0.6...
i valori esatti di X, y non arrotondati...
Spero che mi son spiegato.
Ciao e grazie
luca

 ha scritto nel messaggio 
news:2181a962-767c-4323...@59g2000hsb.googlegroups.com...


GHGHGHGHGH!!!!
"spero che mi son spiegato"...lo fai apposta Andra adesso sviene!!!!
CMQ
 3/2 quanto fa?... 1,5...e fin qui
ma 4/3??...1,(3)...e anche qui...
ma 27/7 ??? se prendi la calcolatrice di windows calcola
27/7=3,8571428571428571428571428571429
e ora che facciamo?..il problema è delle cifre dopo la virgola....
che ci vuoi fare dopo la virgola???
Se fai statistica ti servono...se fai meccanica quantistica ancora di più e 
forse non ti bastano!
se fai contabilità no!...per l'euro si ARROTONDA alle 2 decimali!
...in alcuni casi di legge si prende 3 e in altri 4 decimali...oltre non si 
va!
MA
3,857142857
diventa cosa a 4 cifre decimali?...a 3?  a 2?  a 1???
se tu considerassi:
3,857142857 = 3,85
 sarebbe solo un caso se fosse l'arrotondamento giusto!
...ed a fine anno correresti il rischio di avere euro e euro di 
differenza!!!
Ecco perchè Tiscali ti ha fornito la soluzione giusta!
comunque se vuoi farti del male:
a=3,857142857
dim t as string
t=cstr(a)
....poi SPLIT per la virgola....la seconda riga della matrice sono le cifre 
decimali...con il MID o il LEFT (quello che conosci meglio)...ne prendi 
2....
riassembli la cifra!
non te l'ho scritto tutto il codice perchè lo considero un errore e mi si 
rivoltano le viscere!
"Sempre che io capibbi quello che tu vorrebbi fare"!!!
;o)
-- 
-----------------------------
Mio Blog
http://www.martek.it/dblog/default.asp
Mia città
http://wodka40hall.myminicity.com/
****
In evidenza questa settimanaa 

> "Sempre che io capibbi quello che tu vorrebbi fare"!!!
Io cercavo un codice che mi stravolga i risultati:

Scusate: Io cercavo un codice che mi stravolga i risultati:
da
For W = 0.2 To  0.75 Step 0.05
For X  = 0.5  To 1.5 Step 0.1
 T = ... (risultato OK)
a impostare T ad un valore ed ottenere W o X
 Grazie per la pazienza.

 ha scritto nel messaggio 
news:20b33716-08dc-41b8...@b1g2000hsg.googlegroups.com...

Non sei italiano?...allora sei scusato!
solo che non capisco ancora cosa vuoi fare
forse se ce lo dici in inglese!
Ora sembra di capire che tu vorresti sapere come fare da T ad ottenere W o 
X?
Applichi questa formula
T = X * y / 3.14 * z
Già di mezzo hai il 3.14....sarà difficile che ti torni un numero 
intero.....
poi hai formule del tipo
y1= 12 + 5 * X + d1 ^3 * A * B ^2 * W * D37........
etc etc
Devi giocare con il round.....se arrotondi anche i calcoli intermedi...ti 
trasporti ed amplifichi l'errore e quindi?
Quindi devi giocare con il round
ti faccio notare che i numeri da te dati....
 0.4946
0, 4 9 4 6 ....arrotondato a 3 cifre diventa 0, 4 9 5 ...arrotondato a 2 
diventa 0, 4 9 ...... arrotondato ad una 0, 5.......e quindi ci siamo!
0,7901.....0,790.....0,79...0,8
quindi usa la funzione
ARROTONDA(Cella;Cifre dopo la virgola)
es.
=ARROTONDA(B4;3)
in VBA come ti è gia stato detto!!!..... si chiama ROUND
Dobrovnia Sbovolov...ovverosia....ciao nì!
;o)