int n = 15;
unsigned long long int s,a;
s=pow(10,n) + 2;
a=1000000000000000+2;
cout<<s<<endl;
cout<<a;
здесь вывод 10000000000000001
и 1000000000000002
как это вообще возможно. Я использую блоки кода на 64-битных окнах.
int n = 15;
unsigned long long int s,a;
s=pow(10,n) + 2;
a=1000000000000000+2;
cout<<s<<endl;
cout<<a;
здесь вывод 10000000000000001
и 1000000000000002
как это вообще возможно. Я использую блоки кода на 64-битных окнах.
-Wconversion
в GCC/clang, но обычное поведение заключается в том, чтобы просто выполнить преобразование. - person Marco Bonelli   schedule 12.01.2020-Wconversion
- довольно необычный флаг. Он не включен ни в-Wall
, ни в-Wextra
. - person HolyBlackCat   schedule 12.01.2020n=16
(как указано в заголовке), а не кn=15
, как вы показали в своем коде.1000000000000001
(16 цифр) точно можно представить как двойное число.10000000000000001
(17 цифр) не является - ближайшими двойниками являются10000000000000000
и10000000000000002
. - person J...   schedule 12.01.2020