所以,這是我的問題,我的「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