Gå til innhold

Hente desimalverdien fra en double


Anbefalte innlegg

Videoannonse
Annonse
Skrevet (endret)

gjøre om til string

søke deg frem til komma posisjonen is strengen

hente ut tallene bak den uthentede posisjonen inn i en ny streng

konvertere den nye strengen til int/long/char...?

Endret av MrLee
Skrevet

double a = 222.333;
double b = a % 1.0;

 

Kanskje ikke en lekker metode, men tror faktisk det funker

double a = 222.333;
int t = static_cast<int>(a);
double b = a-t;

Skrevet (endret)

hva med

 

int a;

double x y;

cin >> x;

a = int(x);

y = x - double(a);

cout << y;[code]

 

da får man i alle fall 0.333

 

[EDIT]

Nazgul kom først

Endret av gogodidi
Skrevet (endret)

Det dere foreslår er ikke det samme som jeg ønsker. Jeg ønsker desimaldelen som en int, ikke en double.

 

MrLee: Hvordan gjør jeg om tallet til en string (char[])?

 

Jeg har sett på sprintf/printf, men har ikke funnet noe som printer desimaldelen av en double.

Endret av buskmann
Skrevet (endret)

#include <string>
#include <sstream>
using namespace std;

int main(int argc, char* argv[])
{
  int n;
  double d = 123.456;
  string str;

  stringstream stream_in;
  stream_in << d;
  stream_in >> str;
  stringstream stream_out( str.substr(str.find_first_of('.') + 1) );
  stream_out >> n;

  return 0;
}

 

Av MrLee sitt forslag.

 

Alternativt:

double a = 222.333;
int n = 333;

:cool:

Endret av hishadow
Skrevet

der har vi det ja.

 

Har ikke mye erfaring med C++, så var ikke bombesikker på den detaljerte fremgangsmåten, men det er jo relativt likt på de fleste språk, og noenganger trenger man bare hint for å få ting til å fungere :)

Skrevet

Et problem her er at du ikke definerer hvor mange desimaler du ønsker. Dermed kan man ikke gi noe konsistent svar på oppgaven.

 

Men hvis du alikevel har fått en løsning du er dornøyd med, så er vel alt greit.

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...