Nessun errore:Ciao a tutti come si converte un numero Double in Float?
Ho provato con .As(Float) ma da errore
Dim dbl As Double = 10
Dim flt As Float = dbl.As(Float)
Log(flt)
private Sub Chart_Source As ChartData
Dim Data As ChartData
Dim RS As ResultSet
Data.Months = Functions.Get_MonthNames
Data.Amounts = Array As Float(0,0,0,0,0,0,0,0,0,0,0,0)
Data.Liters = Array As Float(0,0,0,0,0,0,0,0,0,0,0,0)
RS = Functions.SQLConn.ExecQuery("SELECT strftime('%m',Date) as Month, Sum(Amount), Sum(Liters) FROM Refuelings WHERE VehicleId = " & PageParams(0) & _
" AND strftime('%Y',Date) = '" & RefuelingsYear & "' GROUP BY Month ORDER BY Month DESC")
For i = 0 To (RS.RowCount-1)
RS.Position = i
Data.Amounts(RS.GetInt("Month")-1) = RS.GetDouble("Amounts").As(Float)
Data.Liters(RS.GetInt("Month")-1) = RS.GetDouble("Liters").As(Float)
Next
Set_PageHeader
Return Data
End Sub
= RS.GetDouble("Amounts").As(Float)
Ok provoStrano. Prova ad usare delle variabili anziché direttamente:
Sfaticato; tutto pur di non usare variabiliEcco funziona
Data.Amounts(RS.GetInt("Month")-1) = NumberFormat(RS.GetDouble("Amount"),1,7)
Data.Liters(RS.GetInt("Month")-1) = NumberFormat(RS.GetDouble("Liters"),1,7)
Con le variabili non funzionaSfaticato; tutto pur di non usare variabili
(E' sempre meglio usare variabili, come minimo per il debugging; se posizionassi il cursore sul nome di una variabile, in debug, potresti vedere il valore contenuto, mentre se lo posizioni su RS.GetDouble(...) NO).
Comunque, tutto è bene quel che finisce bene![]()
Davvero?Con le variabili non funziona
Quindi così non funziona?Con le variabili non funziona
Dim Month As Int
Dim fltAmounts As Float
Dim fltLiters As Float
For i = 0 To (RS.RowCount-1)
RS.Position = i
fltAmounts = RS.GetDouble("Amounts")
fltLiters = RS.GetDouble("Liters")
Month = RS.GetInt("Month") - 1
Data.Amounts(Month) = fltAmounts
Data.Liters(Month) = fltLiters
Next
si da lo stesso errore in compilazione...Quindi così non funziona?
B4X:Dim Month As Int Dim fltAmounts As Float Dim fltLiters As Float For i = 0 To (RS.RowCount-1) RS.Position = i fltAmounts = RS.GetDouble("Amounts") fltLiters = RS.GetDouble("Liters") Month = RS.GetInt("Month") - 1 Data.Amounts(Month) = fltAmounts Data.Liters(Month) = fltLiters Next
Addirittura in compilazionesi da lo stesso errore in compilazione...
Eh no, mica tanto, altrimenti non funzionerebbe nemmeno:Addirittura in compilazione
Ah, ok, si vede che non consente casting "al ribasso".
converte un numero Double in Float?
B4X:Dim dbl As Double = 10 Dim flt As Float = dbl.As(Float) Log(flt)
Dim dbl As Double = 10
Dim flt As Float = dbl
Log(flt)
se devo arrotondare il numero per eccesso?
es: 4.6 a 5 ?
Log( "Ceil( 4.6) = " & Ceil( 4.6) )
Log( "Ceil(-4.6) = " & Ceil(-4.6) )
Waiting for debugger to connect...
Program started.
Ceil( 4.6) = 5
Ceil(-4.6) = -4
Soltanto a causa del sonnoNon sono sicuro del perché @LucaMs abbia scelto questo metodo