Newsgroup: it.comp.lang.javascript
Titolo: Arrontondamento di un numero reale

Salve a tutti,
devo arrotondare un numero reale alla seconda cifra decimale; sel la
terza cifra e minore di 5 arrotondare per difetto, altrimenti
arrotondare per eccesso. Ho realizzato le seguente funzione però in
alcuni casi non funziona. Potreste darci un'acchiata? se qualche può
indicarmi un'altra funzione già realizzata, benvenga...
function ArrotondaTotale(mio_tot){
var l_indicetrovato=0;
sotto_tot= new String("");
l_tot= new String("");
tot= new String(mio_tot);
	l_indicetrovato=tot.indexOf('.');
	if(l_indicetrovato>=0){	// '.' trovato
		sotto_tot=tot.substr(l_indicetrovato+1);
		if(sotto_tot.length>2){
			if(parseInt(sotto_tot.substr(3,1))<5){
				return tot.substr(0,l_indicetrovato+3);
			} else {
				l_tot=eval(tot.substr(0,l_indicetrovato+2)) + 0.01;
				return tot;
			}
		} else {
			return tot;
		}
	}else {
		return tot;
	}
 
}
Grazie 1K... buon lavoro

 indicarmi un'altra funzione già realizzata, benvenga...
In genere io faccio così:
arrotondato=Math.round(numero*100)/100
Bye.
--
Ðarius.-            :.internet X3meS.:
www.darius.it
   :.mailto.: info(@T)darius(DOT)it
------------------------------------------------ >


-- 
Posted from  [212.141.82.166] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:ae322b087fbd778f610...@mygate.mailgate.org...

Io ammiro l'inventiva e le soluzioni ARZIGOGOLATE a problemi altrimenti
irrisolvibili, ma SOLO DOPO aver spulciato per benino tutto il 'language
reference', leggasi manuale, e NON aver trovato niente che soddisfi le mie
esigenze!!
24 righe di codice al posto di UNA, mi sembrano davvero eccessive!
Inoltre, aumentano le possibilità di sviste.
--
Ciao, Piero.
http://www.qsl.net/ik2vtj
http://www.ardf.it
Togli  /  Remove
NONVOGLIOSPAM
dall'indirizzo  /  from address

 Inoltre, aumentano le possibilità di sviste.
-- 
Posted from  [212.245.99.6] 


 
-- 
Posted from  [212.245.99.6] 


Beh, meno male che hai scritto il secondo messaggio, perchè leggendo il
primo, mi stavo incazzando di più io!:-)
Conoscerai in modo perfetto il linguaggio, ma sarà bene che impari anche a
leggere più attentamente i post.
In ogni caso, l'osservazione mossa, che sarebbe opportuno dare prima
un'occhiata al manuale, non era rivolta solo a te, ma anche e soprattutto a
Gregorio.
Io sono un dilettante e, come tale, spesso mi trovo in difficoltà a
risolvere certi problemi; allora cerco sul manuale, se esiste qualche
funzione del linguaggio che fa al caso mio. Nel caso di Gregorio, bastava
leggere tra le funzioni matematiche; tra scrittura e test di dieci o venti
righe di codice, si perde più tempo che non a cercare una soluzione più
semplice.
A parte, poi, la questione estetica, più righe si scrivono e più Orrori si
fanno, e non ultima cosa, l'indomani, quando si rilegge quel pezzo di
programma, spesso si fa fatica a ricordare perchè si è scritto in quel
modo!!
Senza volerlo, hai comunque detto una verità: dandomi dell'ignorante, anzi
sparandolo nel mucchio, senza sapere a chi lo davi, hai detto il vero; chi
viene qui a chiedere 'ignora' qualcosa.
Ma forse tu l'hai detto in modo spregiativo, e questo non è piacevole.
Se trovi un po' di tempo, prova ad imparare anche un po' d'umiltà e ad
accettare le critiche, contestandole se le ritieni ingiuste, ma con un
minimo di educazione.


ma guarda che il problema non sussiste: come ti ho detto nel secondo post, il
presupposto (sbagliato) da cui ero
partito era che la tua risposta fosse quella di chi aveva posto la domanda (e
va da sè che chi pone una domanda
e poi facesse lo schizzinoso su una soluzione che pur se funzionale non è
ottimale, si pone in una posizione inaccettabile).
Dunque il dare dell' ignorante era indirizzato a chi -nella illazione sbagliata
che ho fatto io-
avrebbe dovuto essere colui che aveva anche posto la domanda.
L'ipotesi che non si trattasse della stessa persona mi è sovvenuta solo in un
secondo momento, alla fine del post (come capita nelle incazzature!)... quindi
sono andato a guardare bene il nome e ho visto che non coincideva affatto. Ergo
cancellazione del post e revisione integrale dell'attegiamento.
Insomma, lo scazzo non era rivolto a te ma dettato da una ipotesi sbagliata. SE
ti senti ancora offeso (e non dovresti) non ho problemi a farti le mie scuse:
ma non era una qualificazione
rivolta a te.
Nel merito della questione invece, e ripetendo che il Math.round è la soluzione
ottimale, torno a dire
che la consultazione del manuale significa poco in sè: ad esempio, figurati se
io non conosco Math.round o Math.ceil o Math.floor o Math.random:
il problema è, semplicemente, che alle volte si prendono delle cantonate.
Il grave non è prenderle: il grave è non correggersi dopo un po' che la si è
presa. Spero che anche tu ti attenga agli stessi principi,
se pensiamo a tutte le volte che ci è venuta in mente una soluzione sbagliata,
pur se funzionante ad un problema, l'unica cosa
che ci può conoslare sono le volte in cui invece la soluzione valida la abbiamo
trovata.Quando jon Bentley, progammatore IBM, dice:
"Understand the code at all times, and just resist those foul urges to change
it until it works"
ci ricorda a tutti una verità che appartiene a questa "professione": tutti i
programmatorri, anche alla IBM, sanno
che ci sono quei momenti in cui non si capisce un codice, e si inzia "just to
change it until it works": ci hanno fatto una cosa che si chiama Millenium Bug
su questo,
e se lo hanno fatto loro, può succedere anche a noi. A me la -spero
relativamente attestata- capacità di scusarmi con un po' della umiltà che tu
giustamente annoti, a te
la graziosità di non essere intransigente.
ciao buona giornata
TrueLies
http://www.unitedscripters.com/
-- 
Posted from  [212.141.82.114] 


Come da oggetto e per la gioia del NG! :-))
--


tua richiesta) io, ivniacelo e facci sapere.
quotare no, eh?
ma a chi stai rispondendo, di grazia?
--
Ciao!
Davide

arrotondato=Math.round(numero*100)/100
rotfl!!!
che smacco!
--
Ciao!
Davide