Есть ли способ преобразовать double как этот - 1.2676506002282294E + 30 в обычную «неэкспоненциальную» запись - PullRequest
1 голос
/ 05 октября 2019

Как конвертировать Math.Pow(2,1000) из

1.0715086071862673E + 301

до

10715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376

1013 * Это потому, что мне нужно найти сумму всех цифр этого числа. Спасибо!

1 Ответ

0 голосов
/ 05 октября 2019

Вы можете использовать BigInteger из System.Numerics. У него свой метод Пау.

System.Numerics.BigInteger bigInteger = System.Numerics.BigInteger.Pow(2, 1000);

string powString = bigInteger.ToString();

int sum = 0;

foreach (char letter in powString)
{
    int letterValue = int.Parse(letter.ToString());
    sum += letterValue;
}

Console.WriteLine(sum);

Я получаю 1366.

...