Предположим, что размер блока равен 1X1, и я должен двигаться с шагом 1/16 вдоль направления x и y. Я хочу округлить 0,53124 до ближайшего 1/16 от размера блока, который равен 0,5625. И аналогичным образом я хочу усечь 0.53124 до ближайшего 1/16 от размера блока, который равен 0,5. Есть ли эффективный способ сделать это? Пожалуйста, дайте мне знать.округлить до ближайшего 1/16 и усечь до ближайшего 1/16 значения в C
ответ
Простейшее путь в большинстве ситуаций, а языки, чтобы быть в
- путем умножения на 16
- округление до ближайшего целого числа
- делят на 16.
Даже более простой и часто лучший подход к этой проблеме - это определение блока, который должен быть 16x16, и все они работают в 16-м. –
И так как 16 - это сила 2, точность не пострадает, если не произойдет переполнение. –
Так как вы, кажется, хотят фиксированная точка, я бы просто использовал неподвижную точку (целые числа в единицах 1/16), если это возможно. Но если вам действительно нужно смешиваться с операциями с плавающей запятой и раундом, один из способов: смещение все ваши значения на огромное количество, так что последнее место занимает 1/16. К сожалению, с помощью gcc этот подход может иметь проблемы с такими системами, как i387, где выражения с плавающей запятой оцениваются с дополнительной точностью, если вы уже не используете всюду, поэтому с практической точки зрения ответ Йоахима может быть проще сделать надежным (хотя он, вероятно, намного хуже).
- 1. Как округлить до ближайшего 0.5?
- 2. Как округлить до ближайшего 0.5?
- 3. C# как всегда округлить до ближайшего 50
- 4. Как округлить до ближайшего четвёртую
- 5. Как округлить до ближайшего 0.5 в RDLC
- 6. Округление значения до ближайшего 50
- 7. Сделайте округление до ближайшего значения
- 8. Как округлить до ближайшего целого в JavaScript
- 9. Как округлить до ближайшего цента в Java
- 10. C#: Как округлить значение float до ближайшего значения float?
- 11. PHP: округлить до денежных значений ближайшего 0,05
- 12. Как округлить x-ticklabels до ближайшего 50
- 13. Как округлить Avg() до ближайшего целого? Джанго
- 14. Округление до ближайшего доллара
- 15. Как округлить значение до ближайшего целого
- 16. Как округлить число до ближайшего кратного 64
- 17. C# - Округление до ближайшего целого
- 18. Как округлить число до ближайшего .5?
- 19. Как округлить число до ближайшего 10?
- 20. Как округлить DateTime до ближайшего периода
- 21. Excel: как округлить число до ближайшего десяти?
- 22. Как округлить время до ближайшего дня?
- 23. Раунд до ближайшего года
- 24. Как округлить до ближайшего 10-го места
- 25. Как округлить двойное до ближайшего четного числа
- 26. Как округлить BigDecimal значение до ближайшего сотого
- 27. Как округлить двойное значение до ближайшего целого
- 28. Как я могу округлить десятичные значения до ближайшего целочисленного значения?
- 29. потолка до ближайшего 50
- 30. Как округлить двойное значение до ближайшего целого числа в C#
Какой язык вы используете? Это может быть полезно. – rcdmk
Спасибо, что напомнил мне. Пожалуйста, используйте C. Спасибо. – user1128265