Se si specifica il tipo di colonna ActiveRecord come decimale, Rails restituirà il valore del database come oggetto BigDecimal ruby.Ruby on Rails colonna decimale
La mia domanda è, quando si lavora con questi campi e si eseguono ulteriori calcoli matematici su di essi, dovrei sempre usare i valori BigDecimal nei miei calcoli o sono valori in virgola mobile ok da usare. Non sapevo se fosse una buona pratica mescolare valori BigDecimal e valori Floating Point negli stessi calcoli.
Esempio Misto: BigDecimal.new ('12 .43 ')/4,2
Stesso tipo Esempio: BigDecimal.new ('12 .43')/BigDecimal.new ('4.2')
Il motivo che mi chiedo è perché sono un po 'timido a usare i float perché ho bisogno di precisione decimale. 0,1 + 0,7 non saranno uguali a 0,8 usando i galleggianti.
Sì, penso che dovrei usare BigDecimal. La mia domanda è se dovessi usare BigDecimal per tutti i numeri nei calcoli. Ho fatto alcuni test e se si esegue questo BigDecimal.new ('1.2') + 1.1 il valore restituito sarà un float non un BigDecimal. È quindi consigliabile utilizzare tutti i numeri BigDecimal quando si utilizza la colonna Decimale di ActiveRecords poiché utilizza BigDecimal internamente in modo che non si rischi il calcolo eseguito in un problema di arrotondamento float? – Dale
Ri: BigDecimal.new ('1.2') + 1.1 restituisce float. Hai ragione. Poiché questo è il caso, assicurati di operare solo con oggetti BigDecimal. Converti solo quando vuoi produrlo. –
Inoltre, ricorda di usare BigDecimal.new ('0.0') piuttosto che 0. –