В 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