Хорошо, у меня простой вопрос.В своем приключении я ищу самые большие числа, которые могут быть в типах данных, и я пробовал такие вещи, как long int, double, float и т. Д.
Но в простейших присвоениях, таких как Float x = 12345789, это дает мне 123456792 каквыход.Вот код
#include <stdio.h>
int main()
{
int x = 1234567891 ;
long int y = 9034567891234567899;
long long int z = 9034567891234567891;
float t = 123456789 ;
printf("%i \n%li \n%lli \n%f \n ",x,y,z,t);
}
, и я получаю вывод:
1234567891
9034567891234567899
9034567891234567891
123456792.000000
Я кодирую на Linux и использую gcc.В чем может быть проблема?
Для ясности, если вы дадите большее число, например
float t = 123456789123456789
, оно получит правильные первые 9, но в некотором смысле округление в последних числах, где это не должно быть.
1234567890519087104.000000
Я мог бы понять это, если бы я работал за 0, как 0,00123, но это просто целые числа, просто чтобы узнать пределы с плавающей точкой.