[C, powl] Откуда берётся лишний ноль? Почему разные результаты?

программирование ruby C/C++

Выражение 6546^321 вычисляется по-разному в языках C/C++ и Python/Ruby. Логически мысля, если число, оканчивающееся на 6, возвести в целую степень, результат тоже будет заканчиваться на 6.
Маленькая программа, приведенная на http://likecode.ru/code/5225d28a45041/, выдаёт странные результаты:

6546 ** 321 = 8478056607617160876617991419506327912076638978219017668788118578024973731709674641487410550909103611689065150956984873024986173283847757642197258892353757080580022724954276008337595465293325347896711848240090313201005242853106894763950935180589186891224199216274239144263189924954759296409106231308938323052121867255350988837801583851709848131133857360656704954383485692217481367568495870980026067722721603857441902104725029335551168605287487713188113058260215205917444086716236158048178488301731598217016547035738853105133242693473084838397823939011443385832130153490111214682883421486498429730247747356730534394932677075989319759672336565431206487093154144590765417302909402397347131245863139797640052074358991142610829215064369208953421576459825590885033729934172314761273441664766056032347786527766906161126355947628183599004093131205592458654827472446459285003736701650923887168715174090964094148562315497734541084648742306514722254726514340902848637925576180844367782433453496744415802948584437151019274383826940222097175560327111477473619981437651880072874095906535251850010251722854555308197090923588463593315587503365328176503893368033082755712538568954493047948133236058514817701947425556382925895618587320605736960.000000

То же выражение на Ruby:

8478056607617160864742896771346086319998318756284006755716453589866404993866585915682351465614992487506609810008992624487681227231449541690363120150372131648338406576935199883812132507277255410276386478039097151207010048580125025442150312820786817109140354569720887171684605614615365963170649330532909431360968661783702674315589828542951885973804291236814325500910849905046473921622452498715192710202081723224427851189527469167082423317241095716822016480353767931774357331450868040855929610935188280093119025289134795057778692814453848376003243429681513407941259300735054525043906216372733416919359055364417303239118539541948635766659147677243228168228526900058521860535352126340495987170755152988902886661675129418277673455905962492721632023196835495659665850627634395281155356504100352227322345579829919785152561416998766437777994323836898699876206466609073889384679048769338278297685774326564106388022520017555336229046557608300952338362199082235496146062213310725806508694377242242324800316317388853474423907389300025792531573964420463798717371858350111009806834873885091181675394332609134291627140916409136647259046640028648321219290268696900585942309066510358854488629732828456143769273495239908098467696297241997213696

Кому верить?

Примечание:
Сайт съел большую часть чисел. Результаты выложил тут: http://likecode.ru/code/5225d465bc16d/

Примечание:
Где-то на 17-м знаке результаты начинают расходиться. Если неправ Си, то есть ли сишные библиотеки для работы с длинными числами?

Примечание:
Нагуглил GnuMP, буду пробовать.
Ответы:
> Где-то на 17-м знаке результаты начинают расходиться.
Очевидно, у long double точность порядка 17 знаков, что Вас в этом удивляет?
Библиотеки гуглите по словам "длинная арифметика".


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.