在C ++中乘以两个浮点数给出非数字结果

时间:2011-12-16 13:35:24

标签: c++

我是一名C ++新手,我的第一个程序出了问题。我试图乘以两个浮点数,结果总是显示为1.1111e + 1,其中1是随机数。以下是我写的小程序。

#include <iostream>
#include <string>
#include <conio.h>
using namespace std;
int main()
{
  float bank;
  float dollor;
  cout<<"Enter amount of $ deposited at Bank: ";//the data to input is 5000
  cin>>bank;
  cout<<"Enter current $ price: ";//1usd = 800mmk: the data to input is 800
  cin>>dollor;
  bank*=dollor;//all deposited $ to local currency
  cout<<"Result is "<<bank;
  getch();
}

,该程序的结果是4e + 006。

ps:我声明为float,以便有时输入浮点数。 我错了,请帮我解决这个问题。谢谢大家..

4 个答案:

答案 0 :(得分:8)

4e+0064000000的{​​{3}},这是5000*800的正确答案。

详细说明,4e+006代表4 * 10**6,其中10**6是十分之六。

要使用定点表示法,您可以像这样更改程序:

#include <iomanip>
...
cout << "Result is " << fixed << bank;

答案 1 :(得分:1)

嗯,5000乘800确实是4e6,即4 * 10 ^ 6,4,000,000。

答案 2 :(得分:1)

尝试:

#include <iomanip>

//...
cout << "Result is "<< setprecision(2) << bank;

...或

cout.precision(2);
cout << "Result is " << fixed << bank;

答案 3 :(得分:1)

这是科学记数法。

看看this。除此之外,它还展示了如何以定点表示法打印数字。