Я хочу округлить значение (удвоить) до следующего (всегда округлить) числа. Округление может быть определено любым числом.
Exp:.
Округление до следующего 2.50
0.00 --> 0.00
0.01 --> 2.50
2.49 --> 2.50
2.50 --> 2.50
2.50000001 --> 5.00
...
Алгоритм для этого прост (если 'число' было отрицательным * -1):
Math.Round((Math.Abs(number) + tolerance) / 2.50, MidpointRounding.AwayFromZero) * 2.50
Допуск определяется следующим образом:
tolerance = 2.50 / 2 - Math.Pos(10, -x);
Но я не знаю, как определить х! Потому что в случае с 1-го по 4-й пример x должен быть 0,01, в случае с 5-м примером - 0,0000001 и т. Д. *
Результаты поиска предлагают только проанализировать строку десятичного числа и сосчитать десятичную цифру. Нет ли математического пути? В противном случае мне придется работать с различными настройками локали для десятичного разделителя и чисел без десятичных цифр (без десятичного разделителя для удаления).
Пусть у кого-нибудь есть решение моей проблемы. Спасибо!
С уважением, Дэнни