所以,这是我的问题,我的“cene”总是不是一个真正的数字,它总是有一个字符'e'在里面......我没有知道我做错了什么。这是我的代码:为什么在打印浮动值时出现字符'e'
#include <iostream> //Vkljucitev knjiznice iostream
#include <string> //Vkljucitev knjiznice string
#include <stdlib.h> //Vkljucitev knjiznice stdlib.h
#include <windows.h> //Vkljucitev knjiznice windows.h
using namespace std; //Uporaba std::
//Razred za datum, kasneje vsiljen
class datum
{
public:
int leto;
int mesec;
int dan;
};
//Razred za racun
class racun
{
private:
string naslov; //Rezervacija string, za ime racuna
float cena[500]; // Skupna cena na računu
int i; // Števec
public:
datum izdaje; //datum izdaje za racun
void nastavi_izracunaj_izpisi() //Podprogram za nastavitev, izracun in izpis racuna
{
//_______________________________________________________________________________________________________________
cout<<"Podaj naslov racuna"<<endl;
getline(cin,naslov);
cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl;
izdaje.dan = rand() % 30 + 1; //Dan
izdaje.mesec = rand() % 12 + 1; //Mesec
izdaje.leto = rand() % 30 + 1985; //Leto
i = rand() % 99 + 1; // Koliko računov smo imeli.
int produkti; //rezervacija za vse produkte
produkti = i + rand() % 199 + 1; //Koliko produktov smo imeli
cout<<"Produkti= "<<produkti<<endl;
float produkt1[500]; //cena prvega produkta
float produkt2[500]; //cena drugega produkta
int a; //števec produktov
a=0; //ki ga nastavimo na nič
//_________________________________________________________________________________________________________________
//Zanka za pridobitev dveh produktov
do
{
produkt1[a] = rand() % 199 +1;
produkt2[a] = rand() % 199 +1;
a=a+1;
}while(a!=produkti);
//Kateri produkt naj izpise
int b; //kateri produkt bo izpisalo
b = rand() % 199 +1;
//____________________________________________________________________________________________________________________
//Zanka za pridobitev cene
int h;
h=0;
do
{
cout<<"Cena: "<<cena[h]<<endl;
cout<<"Produkt1: "<<produkt1[b]<<endl;
cout<<"Produkt2: "<<produkt2[b]<<endl;
cout<<"H: "<<h<<endl;
system("PAUSE");
cena[h]=produkt1[b] + produkt2[b];
h=h+1;
}while(h!= produkti);
//______________________________________________________________________________________________________________________
//DDV
float ddv = 1.12797374897; //DDV vrednost
float cena2; //DDV cene
float cenaddv; //cena z DDV-jem
cena2=cena[h]/ddv; //izracun za DDV cene
cenaddv=cena[h]+cena2; //izracun za ceno z DDV-jem
//________________________________________________________________________________________________________________________
//izpis
cout<<naslov<<endl<<endl;
cout<<endl<<"Dan: "<<izdaje.dan<<endl<<"Mesec: "<<izdaje.mesec<<endl<<"Leto: "<<izdaje.leto<<endl;
cout<<"Produkt1 = "<<produkt1[b]<<"$"<<endl<<"Produkt2 = "<<produkt2[b]<<"$"<<endl;
cout<<"Kupili ste: "<<produkti<<" produktov"<<endl; //izpis za produkte
cout<<"Cena brez ddv: "<<cena[h]<<"$"<<endl<<"DDV: "<<cena2<<"$"<<endl<<"Cena z DDV: "<<cenaddv<<"$"<<endl;
}
};
//Glavni program
int main()
{
racun nekaj; //Rezervacija objekta
nekaj.nastavi_izracunaj_izpisi(); //Izpis metode
system("PAUSE"); //Zamrzni zaslon
return 0; //Koncaj program
}
有人可以解释我应该怎么做?
P.S.该计划在斯洛维尼亚语中。
编辑:
我解决它...而不是这样做:
//Zanka za pridobitev cene
int h;
h=0;
do
{
cout<<"Cena: "<<cena[h]<<endl;
cout<<"Produkt1: "<<produkt1[b]<<endl;
cout<<"Produkt2: "<<produkt2[b]<<endl;
cout<<"H: "<<h<<endl;
system("PAUSE");
cena[h]=produkt1[b] + produkt2[b];
h=h+1;
}while(h!= produkti);
我这样做:
cena = produkti*(produkt1[b]+produkt2[b]);
我没有看到任何'srand'调用。为自己节省麻烦并使用''。 –
chris
“2.67e + 14”这个数字只是科学记数法,意思是'2.67 * 10^14' –
但是cene [0] = - 2.00124e + 12或类似的东西 – user3029612