mboost-dp1

Tælle decimaler


Gå til bund
Gravatar #1 - praktikant muffe AKA pewbe
9. mar. 2009 19:58
Hej til jer alle.
Jeg prøver at lave et lille program i c++ der kan tælle antallet af decimaler. Kan det lade sig gøre/hvordan gør man?
Har googlet lidt på det, uden resultat, men fortsætter om lidt ;)
Tak :)
Gravatar #2 - arne_v
9. mar. 2009 20:09
#1

Vil du have det eksakt inkl. afrundings støj eller vil du lave et godt gæt ?
Gravatar #3 - praktikant muffe AKA pewbe
9. mar. 2009 20:10
Hvis der ikke er nogen decimaler skal den gøre en ting, hvis der er decimaler skal den gøre en anden :P
Gravatar #4 - arne_v
9. mar. 2009 20:14
if(x == (int)x)

eller

if(fabs(x - round(x)) < 0.000001)

afhængigt af dit behov.
Gravatar #5 - praktikant muffe AKA pewbe
9. mar. 2009 20:15
Jeg prøver (:
Gravatar #6 - arne_v
9. mar. 2009 20:39
#5

Forskellen er igen mellem eksakt og godt gæt (ret selv 0.000001 til hvad der passer til din kontekst).
Gravatar #7 - praktikant muffe AKA pewbe
9. mar. 2009 20:40
Faldt lige over et andet problem: Jeg skal have taget kubikroden af et tal :P
Gravatar #8 - Sobuno
9. mar. 2009 20:45
Kubikroden til x: x^(1/3)

Ligeledes er kvadratroden til x: x^(1/2)
Gravatar #9 - praktikant muffe AKA pewbe
9. mar. 2009 20:47
x=y^(1/3);
Men det giver en fejl :S
Gravatar #10 - arne_v
9. mar. 2009 20:48
#7

pow(x, 1/3.0)
Gravatar #11 - arne_v
9. mar. 2009 20:48
^ er en ofte anvendt syntax for potens, men i C betyder det XOR !
Gravatar #12 - Sobuno
9. mar. 2009 20:53
Ahh, sorry, kender ikke meget til C, skrev bare lige det matematik jeg nu kendte

Edit: Burde jeg ikke kunne rette i indlægget? Det er under 10 minutter siden :S
Gravatar #13 - praktikant muffe AKA pewbe
9. mar. 2009 20:59
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
float x, xsq, xsq2;
for (x=700; x<=800; x++){
xsq=sqrt (x);
xsq2=pow(x, 1/3.0);
cout<<"Sqrt="<<xsq<<", Cube="<<xsq2<<"";
cin.get();
}
}

Giver mig en masse fejl ved linje 9:S
Gravatar #14 - arne_v
9. mar. 2009 21:05
#13

Brug double fremfor float.

Og tilføj den manglende quote.
Gravatar #15 - praktikant muffe AKA pewbe
9. mar. 2009 21:06
Yay, virker :D
Tak for hjælpen :D
Gravatar #16 - arne_v
9. mar. 2009 21:10
En tilrettet version:

#include <iostream>
#include <cmath>
#include <cstdlib>

using namespace std;

int main()
{
for (int i = 700; i <= 800; i++)
{
double x = i;
double xsq = sqrt(x);
double xsq2 = pow(x, 1/3.0);
cout << "\"Sqrt=" << xsq << ", Cube=" << xsq2 << "\"" << endl;
}
cin.get();
return EXIT_SUCCESS;
}
Gravatar #17 - arne_v
9. mar. 2009 21:11
Den med C++, math og float versus double er lidt grumset. Men hvis du altid bruger double, så undgår du det problem.
Gravatar #18 - praktikant muffe AKA pewbe
10. mar. 2009 08:19
Det vil jeg huske ;)
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login