Я хочу отказаться от точности с плавающей точкой.
(4.43597).discard(3) => 4.435 (not 4.436)
Я не хочу использовать раунд. Как я должен это делать ? Я не могу найти способ.
Все еще используйте round, но эффект обрезки в нужной позиции.
round
(4.43597-0.0005).round(3)
Другой вариант: 1. умножить на 1000 2. использовать floor (), чтобы округлить 3. разделить на 1000.0
Немного излишне, но, тем не менее,
>> (4.43597).to_s.scan(/\d+\.\d{3}/)[0].to_f => 4.435