а так
https://docs.microsoft.com/ru-ru/dotnet/standard/b... ?
ps если сложности с языком "потенциального противника", ищите в урле МСДН фрагмент
en-en
(может даже
en-us
) и заменяете на
ru-ru
. правда бывают страницы для которых даже машинного перевода еще нет. но редко
еще совет, попробуйте использовать вместо
double
Biginteger а то (покоцано, double не заметил, а аналога в шарпе нет)выхлоп приведенного фрагмента, даже для C++ не выглядит правдоподобным. double
плюсов имеет не более 15 знаков точности https://docs.microsoft.com/ru-ru/cpp/cpp/data-type... а у вас там явно в разы больше
а 15 знаков точности, таки 6,82455418022865E+86 как раз и будет. что для плюсов, что для шарпа ;)))
ответ у вас точно из другого источника, совсем не из плюсов. даже excel имеет что то в районе 30 знаков точности, что совпадает с decimal
pps у вас там 87 знаков. вот пруф https://dotnetfiddle.net/LRji4y
так что приведеный фрагмент плюсов нервно курит. он тоже не может дать ни чего кроме 6,82455418022865E+86, по тому что использует double
. чем заменить в плюсах не знаю.но раз вопрос о шарпе, повторюсь - заменяйте на
.. раз аналога long double в шарпе нету, берем
Biginteger и проверяем
https://dotnetfiddle.net/UC8Qwi
так что
ни какой особый спецификатор формата не нужен. это категорически только вопрос точности вычислений. но он еще интереснее. плюсы (у меня тоже)
выдают#include <iostream>
using namespace std;
int main()
{
int k = 50;
//cin >> 50; кстати доставляет
// по тому и предположил сразу k = 50
long double s = 36 * pow(55, k - 1);
printf_s("%.0lf", s);
}
682455418022864774674923808460655749191222515615160719133685961958626840651329615953920
а
шарпusing System;
using System.Numerics;
namespace big_int_net
{
class Program
{
static void Main(string[] args)
{
var s = 36 * BigInteger.Pow(55, 49);
Console.WriteLine(s);
}
}
}
682455418022864824778975492858747729001539122984270520078098343219608068466186523437500
это снова вопрос точности.
кто косячит. пока не готов сказать бинго!
float double
на таких больших значения как раз и дает ошибку - верны только старшие 22 знака из 87 (!!!). а
BigInteger
данное выражение считает
точно.
пруф -
https://www.wolframalpha.com/input/?i=36*55%5E49