Переменные с плавающей точкой в ​​C ++ - PullRequest
0 голосов
/ 21 января 2011

Когда я использую float или double в c ++ после переполнения восьмизначного числа, как это исправить?

Это мой код:

#include <iostream.h> 
#include <conio.h> 
void main() { 
  double x; 
  cout<<"double : "; 
  cin>>x; 
  cout<<endl<<x; 
  getch(); 
}

Когда cin = 123456789, это мойcout: 123457e.08.

Ответы [ 2 ]

5 голосов
/ 21 января 2011

Используйте точку: double x = 2398479238749234.0

2 голосов
/ 21 января 2011

Если вы объявляете число с плавающей точкой, вы можете набрать f в конце, например:

float var = 123456789.0f;

Простая, но интересная демонстрация:

Чтобы увидеть важность f, попробуйте этот код:

 float f1 = 1.3f;
 //test f1
 if ( f1 == 1.3f )
  std::cout<<"f1 is equal to 1.3f"<<std::endl;
 else
  std::cout<<"f1 is not equal to 1.3f"<<std::endl;

 float f2 = 1.3;
 //test f2
 if ( f2 == 1.3 )
  std::cout<<"f2 is equal to 1.3"<<std::endl;
 else
  std::cout<<"f2 is not equal to 1.3"<<std::endl;

Выход:

f1 равно 1,3f
f2 не равно 1,3

См. Демонстрацию на ideone: http://www.ideone.com/QvzEp

...