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