Если вас беспокоит переопределение «to_s» на Float с возможными непредвиденными побочными эффектами, ваша следующая лучшая ставка, вероятно, просто создать новый метод, но все же в качестве основного расширения.Примерно так:
class Float
def c
sprintf('%.2f', self)
end
end
Тогда не может быть никаких непредвиденных последствий, и тогда, где бы вы ни захотели отобразить число с двумя десятичными разрядами, вы просто позвоните .c
.Например:
message = "The account balance is $#{amount.c}."
Не автоматический, но не слишком много дополнительной печати, и никаких возможных побочных эффектов, которые может вызвать переопределение to_s.