Я работаю над функцией построения графика, и мне нужно определить, где размещать метки осей. При вычислении приращений между каждой меткой я хочу избежать меток со значениями 142, 284 и т. д., а предпочел бы их со значениями 150, 300 и т. д.
Однако цифры не всегда находятся в одном диапазоне. Вот как я планирую округлить их с помощью функции:
- от 0 до 1: округлить до первого десятичного знака
- от 1 до 10: округлить до целого числа или 0,5
- от 11 до 20: округлить до целого числа
- от 21 до 100: округлить до числа, кратного 5
- от 101 до 200: округлить до числа, кратного 10
- от 201 до 1000: округлить до числа, кратного 50
- между 1001 и 2000: округлить до числа, кратного 100
- между 2001 и 10000: округлить до числа, кратного 500
Моя проблема заключается в числе 2. Как округлить до числа, кратного 0,5? Кроме того, существует ли альтернативная стандартная функция, которую можно использовать для таких проблем с маркировкой?