Newsgroup: it.comp.www.asp
Titolo: Solo 2 decimali ...

Salve,
ho questa stringa:
-------------------------------
    var Sql = "SELECT SUM(impins) AS importo, COUNT(impins) AS numero, 
coddit, ccli, YEAR(datins) AS anno FROM insoluti WHERE NOT tipins = 'F' AND 
ccli = 'baoba' GROUP BY coddit, ccli, YEAR(datins) ORDER BY YEAR(datins) 
DESC";
-------------------------------
e più sotto:
-------------------------------
  Response.Write ("<td width=150><div align=right>" + Rs("importo") + 
"</div></td>")
-------------------------------
che funziona perfettamente però, 'importo' mi ritorna, quando periodico, 
troppi decimali.
qualcuno sa dirmi cosa devo modificare nella stringa per far si che il 
risultato a video si fermi a 2 decimali?
Ho trovato informazioni sul web che parlano di operatori ROUND , CEILING e 
FLOOR ma non riesco ad integrarli!!!!!!!!
grazie, ciao.
Cinop! 

 "</div></td>")
devi specificare il linguaggio usato ... vedo un ; finale nella query, e un
+ che concatena, io deduco jscript (strano funzioni quel Rs("importo"), una
volta avrebbe scritto "Object", si vede che hanno introdotto il concetto di
"proprietà di default" proprio di vbscript [IMHO inutile e concettualmente
dannoso]).
Math.round(numero*100)/100; e hai 2 decimali, in generale (poi dipende cosa
esattamente contiene quel valore, il separatore decimale etc).
-- 
"qualcuno è andato per età
 qualcuno perchè già dottore
 e insegue una maturità, si è sposato, fa carriera
 ed è una morte un po' peggiore"
									    F.G.

 ha scritto:

Ciao, potresti, con split (e la virgola come parametro) dividere interi dai
decimali, quindi prendere sono i primi deu decimali da sinistra , con left,
e poi ricomporre la stringa... però non so come fare per arrotondare la
terza cifra decimale in base ai criteri dell'euro per arrivare a due
cifre... :(
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/


Response.Write ("<td width=150><div align=right>" + Round(Rs("importo"),2) +
"</div></td>")
dove 2 è il numero dei decimali che puoi variare a tuo piacimento
2 dita a V
Fr@nc3sc0

 Math.round(numero*100)/100; e hai 2 decimali,
Scusa ma non ho ben capito! Sai non sono un espertone!
il mio campo contiene un importo che č il fatturato dei miei clienti!
Immaggino ch io debba modificare questa prima parte:
 var Sql = "SELECT SUM(impins) AS importo
per far si che mi restituisca solo 2 deciamali, ma non saprei come applicare 
il tuo consiglio!
Ciao, grazie, CinOp! 

 risultato a video si fermi a 2 decimali?
Puoi usare FormatNumber:
Response.Write ("<td width=150><div align=right>" + 
FormatNumber(Rs("importo"), 2) + "</div></td>")
-- 
3st3b4n
www.seber.it
Questo post è stato scritto con bit riciclati 

  var Sql = "SELECT SUM(impins) AS importo
no, io parlavo di quando scrivi (Response.Write(Math.round...))
-- 
"That until there is no longer first class
And second class citizens of any nation
Until the colour of a man's skin
Is of no more significance than the colour of his eyes
Me say war"
B.M.

 dove 2 è il numero dei decimali che puoi variare a tuo piacimento
mmmmmm, no ! Mi da errore:
Errore di run-time di Microsoft JScript error '800a138f'
Previsto oggetto
CinOp!

 FormatNumber(Rs("importo"), 2) + "</div></td>")
mmmmm, no, mi da errore anche questo:
Errore di run-time di Microsoft JScript error '800a138f'
Previsto oggetto
sulla riga dove ho inserito FormatNumber!
CinOp

 Previsto oggetto
per forza: te usi jscript e ti hanno risposto (qua e altri) per vbscript
... per questo ti ho detto di esplicitare jscript: purtroppo la leggenda
metropolitana per cui "asp = vbscript" è diffusissima :-/
-- 
"E' l' ignoranza che crea l'intolleranza
 di gente cieca e senza coscienza"
									  S.S.S.


Hai ragionissimo !
Chiedo venia. Non avevo visto il "+" :-P
Eccoti la sintassi:
Response.Write ("<td width=150><div align=right>" & Round(Rs("importo"),2) & 
"</div></td>")


 "</div></td>")
??? un ottimo miscuglio vbscript-jscript :-)
- & è per vbscript, per jscript devi usare + (& in jscript è l'AND logico)
- Round è una function di vbscript, per jscript Math.round che accetta solo
il numero come parametro (quindi Math.round(numero*100)/100, in generale)
- meglio esplicitare la proprietà (Rs("importo").value)
-- 
"Non sai che ci vuol scienza
 ci vuol costanza
 ad invecchiare senza maturità"
									    F.G.

 ??? un ottimo miscuglio vbscript-jscript :-)
Visto che non siamo in grado di sapere se č vbscript o javascript, taglialo 
la testa al toro e facciamo cosě:
var Sql = "SELECT Round(SUM(impins),2) AS importo, COUNT(impins) AS numero,
coddit, ccli, YEAR(datins) AS anno FROM insoluti WHERE NOT tipins = 'F' AND
ccli = 'baoba' GROUP BY coddit, ccli, YEAR(datins) ORDER BY YEAR(datins)
DESC";
2 dita a V
Fr@ncesco

 - meglio esplicitare la proprietà (Rs("importo").value)
Essendo tonto non ho del tutto capito cosa mi hai scritto, però ho fatto un 
passo avanti:
 " + Math.round(Rs("impord")) + "
e
" + Math.round(Rs("impord")*100/100) + "
mi restituiscono il valore arrotondato per eccesso senza decimali, e già 
questo potrebbe essere di mio gradimento anche se io vorrei i 2 decimali, 
trattandosi di ordini in euro!
" + Math.round(Rs("impord"*100)/100) + "
mi da errore
" + Math.round(Rs("impord"),2) + "
anche questo mi restituisce il valore arrotondato per eccesso senza decimali
Grazie a tutti voi che mi avete risposto, e grazie a chi vorrà continuare a 
farlo! :D
CinOp!

 anche questo mi restituisce il valore arrotondato per eccesso senza decimali
strano ... probabilmente quel ,2 lo ignora (round accetta 1 solo parametro,
che è il numero da arrotondare).


   S.S.S.
SudSoundSystem !
:P
Ciao, e grazie sempre!
CinOp! 

 SudSoundSystem !
;-)


   ... + (Math.round(parseFloat(Rs("impord").value)*100)/100) +
Tu sei BRAVO ! ... no no dottò, TU SEI BRAVO! Senti a me!
:D
Finalmente grazie al tuo aiuto ho risolto sto cavolo di problema ...  grazie 
ancora!
CinOp! 

 :D
:D non sono però De Niro, purtroppo ... :D
-- 
"Run rabbit run
 dig that hole, forget the sun
 and when at last the work is done
 don't sit down, it's time to dig another one"
									    P.F.