Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Увеличение double


Автор: stashe 28.4.2009, 16:11
Есть дабл, и есть число в котором кол-во разрядов
к примеру есть x = 0.023 и есть digits = 3 (т.е. 3 знака после разделителя)

Как можно увеличить x на 0.001, т.е. получить 0.024 или 0.022
Смысл в том, чтобы увеличить стринговую double на один разряд, или уменьшить

Количество разрядов динамическое, т.е. при каждом вызове может меняться. Есть идеи?

Добавлено через 2 минуты и 38 секунд
Может кто не понял, в CompactFrameWork'е numerUpDown не поддерживает double, приходится извращаться и textbox со стрингами конвертить в double, увеличивать или уменьшать и опять в стринг.
Кол-во разрядов в value меняется, не фиксировано

Автор: DVariuS 28.4.2009, 16:20
Так подойдет?
Код

double x = 0.023;
int digits = 3;
x += Math.Pow(10, -digits);

Автор: stashe 28.4.2009, 16:25
Результат будет 0.0231, а надо 0.024

Добавлено через 2 минуты и 10 секунд
Но за идею спасибо
получилось при 

            int digits = 3;
            x += Math.Pow(10, -digits+1);

Автор: Soah 28.4.2009, 16:28
Код

Math.Pow(0.1, digits);

Автор: DVariuS 28.4.2009, 16:29
Цитата(stashe @ 28.4.2009,  15:25)
Результат будет 0.0231, а надо 0.024

Ты проверил хотя-бы? Результат никак не может быть 0.0231, потому что 10 в степени -3 = 0.001

Автор: stashe 28.4.2009, 16:34
Пардон, твой вариант был верным, спасибо большое

Автор: DVariuS 28.4.2009, 16:37
Цитата(stashe @ 28.4.2009,  15:34)
Пардон, твой вариант был верным, спасибо большое

Всегда пожалуйста!  smile 

Автор: PashaPash 28.4.2009, 16:38
--del-- (опоздал smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)