private int GetCurrentPercentUL()
{
var maxItem = 100153UL;
var currentItem = 100150UL;
return (int)(currentItem / (maxItem / 100M));
}
private int GetCurrentPercentBI()
{
var maxItem = new BigInteger(100153);
var currentItem = new BigInteger(100150);
return (int)(currentItem / (maxItem / 100));
}
Был вариант с ulong и decimal (100M), работал вполне корректно. Потом пришлось увеличить числовой диапазон до BigInteger, и встала проблема с подсчетом процентов. Как правильно и красиво переделать метод GetCurrentPercentBI для корректной работы?
Upd:
private int GetCurrentPercentBI()
{
var maxItem = new BigInteger(100153);
var currentItem = new BigInteger(100150);
var percent = (int)(currentItem / (maxItem / new BigInteger(100)));
if (percent == 100 && maxItem > currentItem)
percent = 99;
return percent;
}
Есть такое решение, но по мне - оно некрасивое. Если есть более корректные варианты - напишите в ответах.
входная строка -"(m*(g*(3+5))*m)"Нужно достать выражение в самых глубоких скобках (со скобками)
Всем доброго времени сутокНеделю назад начал писать большой проект на С#