Ondalık olarak ActiveRecord sütun türünüzü belirtirseniz, Rails bu veritabanı değerini Ruby BigDecimal nesnesi olarak döndürür.Ruby On Rails onlu sütun
Sorum şu: Bu alanlar ile çalışırken ve bunlara ek matematik uygularken, hesaplamalarımda her zaman BigDecimal değerleri kullanmalı mıyım yoksa kullanılacak kayan nokta değerleri mi kullanmalıyım? BigDecimal değerleri ve Floating Point değerlerini aynı hesaplamalarda karıştırmanın iyi bir uygulama olup olmadığını bilmiyordum.
Karışık Örnek: BigDecimal.new ('12 .43 ')/4.2
aynı tip Örnek: BigDecimal.new ('12 .43')/BigDecimal.new ('4.2')
Bunu sormamın sebebi çünkü ondalık doğrulukta ihtiyacım olduğu için yüzer kullanmaktan utangaç bir silahım. 0.1 + 0.7, yüzdürme kullanılarak 0,8 eşit olmayacaktır.
Evet, BigDecimal kullanmalıyım. Sorum şu: Hesaplamalardaki tüm sayılar için BigDecimal kullanmalı mıyım? Bazı testler yaptım ve bu BigDecimal.new ('1.2') + 1.1 yaparsanız, dönüş değeri bir BigDecimal değil bir float olacaktır. Bu nedenle, BigDecimal'i dahili olarak kullandığından, ActiveRecords Ondalık sütunuyla çalışırken tüm BigDecimal sayılarını kullanmak en iyi yöntemdir, bu yüzden hesaplamalarınızı garip bir float yuvarlama sorununa dönüştürmeyebilirsiniz. – Dale
Re: BigDecimal.new ('1.2') + 1.1 float döndürür. Haklısın. Bu durumda, yalnızca BigDecimal nesnelerle çalışmayı unutmayın. Sadece çıktı vermek istediğinizde dönüştürün. –
Ayrıca, BigDecimal.new ('0.0') yerine 0 değerini kullanmayı unutmayın. –