Я понимаю из-за неточного представления плавающих точек, следующий код «чувствует» непоследовательность.Согласованное округление плавающих точек в Ruby
"%.1f" % 1.14 # => 1.1
"%.1f" % 1.15 # => 1.1
"%.1f" % 1.16 # => 1.2
"%.0f" % 1.4 # => 1
"%.0f" % 1.5 # => 2
"%.0f" % 1.6 # => 2
Однако существует ли простой способ выполнения согласованных точек с плавающей точкой, округляющихся на 5? Одним из способов может быть выполнение строковых манипуляций явно. Есть ли более простой способ или существующая библиотека?
Да, простой и элегантный. – bryantsai
вопрос стороны, x.to_s для float всегда дает x (например, 1.15.to_s => '1.15')? или также повлияет на неточное представление? – bryantsai
Извините, я не уверен в этом. Из моих тестов все, кажется, проходит через ОК, однако Float # to_s, похоже, усекает любое число с более чем 15 цифрами. –