Permalänk
Medlem

Visa decimaler och ta bort

Tja.

Jag gjorde följande deklaration:

unsigned long double nr = 070123456789;

Skrev ut den med:

cout << nr;

Och fick detta:

7.01235e+010

Vet nån hur man visar alla siffrorna för detta ska visa ett mobil nr.

Och vet nån hur man preciserar exakt antalet decimaler man vill visa? För att göra det enkelt kan ni väl visa mig hur man använder funktionen på min kod.

Permalänk
Medlem

string kanske?

string nr = "070123456789";

Visa signatur

I love to lol!!

Permalänk
Medlem

Nej. Det går att skapa den via Double, float lr int. Ska bara använda nån funktion för att visa alla siffrorna. Men kommer inte ihåg vilken och hur man använde den. Nåt me setprecision va d iaf. Nån som vet?

Permalänk
Medlem

Du bör nog använda en string, du kan inte spara detta nummer varken som en int, float eller double. Float/double sparar inte tal exakt.

Du kan inte börja ett nummer med en 0:a om du inte själv skriver ut nollan (annars tolkas det som ett oktalt tal). Därför kan du lika gärna använda en string.

Gjorde detta test:

#include <iostream> #include <iomanip> int main() { float f = 0.70123456789f; double d = 0.70123456789; //int i = 70123456789; std::cout << std::setprecision (11) << f << std::endl; std::cout << std::setprecision (11) << d << std::endl; //std::cout << i << std::endl; return 0; }

Detta skriver ut:

0.70123457909
0.70123456789

Du kan ta bort kommentarerna framför int i, men då ger gcc detta fel:

test.cpp: In function `int main()':
test.cpp:8: error: integer constant is too large for "long" type

För att fixa detta kan du använda __int64 (VC++) eller long long (gcc), men jag rekommenderar att du använder string om du inte absolut måste använda något annat.

Permalänk
Medlem

Ok. tack. Det var iomanip jag inte visste jag skulle inkludera.