Bu, korkunç verimsiz görünüyor. Birisi bana daha iyi bir Ruby yolu verebilir.Yuvarlak ondalık en iyi Ruby uygulamasının en yakın 0,575
def round_value
x = (self.value*10).round/10.0 # rounds to two decimal places
r = x.modulo(x.floor) # finds remainder
f = x.floor
self.value = case
when r.between?(0, 0.25)
f
when r.between?(0.26, 0.75)
f+0.5
when r.between?(0.76, 0.99)
f+1.0
end
end
Bu çözüm yöntemi Ruby-Class'ın kendisine ekledikçe, aşağıdaki gibi kullanabilirsiniz: '(2.45) .round_point5' veya' x.round_point5' – giraff
sınıfı Ondalık - bu bir Rails şey mi? Ve 'değer' nedir? – steenslag
woah, teşekkürler @steenslag - blatently yanlış olan değer şey düzeltildi. Aynı zamanda Ondalık Sınıfı'nı da değiştirdim, çünkü bir Ondalık sınıfı varken (ve OP'de ondalıktan bahsediyorsa), muhtemelen bundan bahsettiğiniz şeyden değilsiniz ... – Peter