Newsgroup: it.comp.programmare
Titolo: Ecco il problema float su sqlserver

Ambiente sqlserver 6.5 e 7.0
Se scrivo sia da programma che via sqltalk un numero float con due decimali, mi
ritrovo il numero scritto con un numero variabile di decimali.
Mi spiego: se io scrivo, ad esempio, 7.52 lui mi scrive 7.51999999999999999 ,
oppure, in altri casi, mi scrive al posto di 7.53 7.53000000000000001 e cosě
via...
il tutto, a livello di programma che mi confronta due numeri, si traduce in un
delirio.
Io credo che ci sia da impostare un qualche parametro, ma quale e dove?  :)
Grazie
Eleonora
-- 
Posted from  [213.21.168.6] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 delirio.
   Non e` un problema: e` il comportamento standard del tipo /float/, 
che ricalca quello del tipo omonimo del linguaggio C; se vuoi un dato 
con precisione fissa, devi usare il tipo /decimal/. Se non puoi cambiare 
tipo di dato, consulta la manualistica del Transact-SQL alla ricerca di 
una funzione di conversione, qualcosa troverai di certo.
-- 
Veri pirati noi siamo       Ma cosa c'e` di male?
Contro il sistema lottiamo  Ma cosa c'e` di strano?
Ci esercitiamo a scuola     Facciamo un gran casino
A far la faccia dura        Ma in fondo lavoriamo
Per fare piu` paura         Per capitan Uncino

 
-- 


 peccato che qui non abbiamo questo benedetto manuale :((
   Avete certamente la versione /on-line/. Cerca della funzione *convert*.
<cite>
	The CONVERT function converts an expression of one datatype
	to another datatype. Also obtains a variety of special
	date formats.
	Syntax
	CONVERT (datatype[(length)], expression [, style])
	where
		/datatype/
		Is any system datatype (for example,
		char(10), varbinary, int) into which the expression
		is to be converted. User-defined datatypes cannot
		be used.
		/length/
		Is an optional parameter with char, varchar, binary,
		and varbinary datatypes. *Note*  For datatypes
		where specifying length (n) is optional
		(binary[(n)], char[(n)], varbinary[(n)],
		and varchar[(n)]) SQL Server uses 30 for the length.
		The maximum allowable length is 255.
		/expression/
		Follows the rules for expressions. For more
		information, see the Expressions topic.
		/style/
		Is the style of date representation you want
		when converting datetime or smalldatetime data
		to character data. In the following table, the
		two columns on the left represent the style values.
		Add 100 to a style value to get a four-place year
		that includes the century (yyyy).
	<skip>
	/float/
	Values of float are truncated when converted to any
	integer type.  When you are converting from float or real
	to character data, the string function STR( ) is usually
	a better choice than CONVERT( ), because STR( ) gives you
	more control over formatting. For more information, see
	the String Functions topic.
</cite>


 Eleonora
Ti spiacerebbe quotare per bene? Mi spiego: le risposte sotto
al testo originale non sopra.
PS: Perche' non contatti la M$? Del resto avrete speso un pozzo
      di soldi "anche" per avere l'assistenza...
Ciao
Gaetano.
-- 
Posted from 
nts-03.mm.eutelsat.org
 [194.214.173.15] 


 
grazie per l'attenzione.
In realtà programmiamo in Centura su sqlserver e non riusciamo 
a utilizzare questa funzione.
Stiamo però valutando la possibilità di utilizzare decimal anzichè float.
Abbiamo problemi con manuali sia cartacei che online e abbiamo sempre 
utilizzato o integer o float.
Di più in pubblico non posso aggiungere, visto che mi sono registrata con 
nome e cognome ;)
ciao 
Eleonora


 nome e cognome ;)
   E di piu` non ti chiediamo. ;)
