округление до ближайшего красивого числа

Я пишу приложение, которое требует округления меток до ближайшего «хорошего» числа. Я помещу код ниже, чтобы продемонстрировать это, но моя проблема в том, что я использовал серию else if, чтобы найти это число, но я не могу быть уверен в верхнем пределе, поэтому это не совсем хорошая стратегия. Есть ли какие-либо известные алгоритмы или ресурсы, которые могут мне помочь?

    if (diff <= 1) {
        roundAmount = 0.2;
    } else if (diff <= 5) {
        roundAmount = 1;
    } else if (diff <= 10) {
        roundAmount = 2;
    } else if (diff <= 25) {
        roundAmount = 5;
    } else if (diff <= 50) {
        roundAmount = 10;
    } else if (diff <= 100) {
        roundAmount = 20;
    } else if (diff <= 250) {
        roundAmount = 50;
    } else if (diff <= 500) {
        roundAmount = 100;
    } else if (diff <= 1000){
        roundAmount = 200;
    } etc...
5
задан user650309 11 October 2011 в 11:39
поделиться