В Ruby, 0.0 * -1 == -0.0.
У меня есть приложение, где я умножаю кучу объектов Float с -1, но мне не нравится -0.0 в выводе, так как это запутывает.
Есть ли разумный способ сделать Float#to_s вывод 0.0 вместо -0.0?
Я отлично справляюсь с запуском каждого объекта Float с помощью какого-либо метода скруббера/помощника, но следующее просто приводит меня к еще более запутанному:
def clean_output(amount)
if amount.zero?
0.0
else
amount
end
end
ОБНОВЛЕНИЕ:
Чтобы быть более точным из того, что я ищу, я хочу решение, которое я могу запустить на целой кучке поплавков, некоторые из которых будут отрицательными, некоторые положительные. Отрицательные должны оставаться отрицательными, если они не являются отрицательными нулями, т.е. -0.0.
Примеры:
clean_output(-0.0) #=> 0.0
clean_output(-3.0) #=> -3.0
clean_output(3.0) #=> 3.0