2010-07-19 2 views
2

У меня есть переменная, которую я хотел бы заставить иметь 2 и всегда 2 десятичных знака. Im по сравнению с валютой. Часто я получаю сравнение, похожее на следующее.Как получить переменную, чтобы иметь 2 десятичных знака

if self.price != price 
    #do something 
end 

Где self.price = 120.00 и price = 120.0. self.price устанавливается с :precision => 2 в модели, но как я сделать то же самое с переменной, причиной этого, кажется, не в состоянии по сравнению

ответ

1
class Numeric 
def round_to(decimals=0) 
    factor = 10.0**decimals 
    (self*factor).round/factor 
    end 
end 


if self.price.round_to(2) != price.round_to(2) 
    #do something 
end 
3

Используйте целые для хранения валюты, например, использование магазин 100 центов 1 доллар. Это уменьшает головные боли и может улучшить производительность, если это имеет значение.

 Смежные вопросы

  • Нет связанных вопросов^_^