Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

adapto

Treue Seele

  • »adapto« ist der Autor dieses Themas

Beiträge: 147

Wohnort: Berlin

Beruf: Student

  • Private Nachricht senden

1

25.08.2004, 02:15

float nachkommastellen

sagt mal, wie kann ich am einfachsten, n stellen von einem float auf eine variable übertragen.

also wenn zb x= 0.588321 wäre und ich y x zuweise, das nun y= 0.58 2stellig hinter den komma wird.

Patrick

Alter Hase

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

2

25.08.2004, 02:20

reden wir vom "abschneiden" der Nachkommastellen oder dem Runden?

Runden geht ganz einfach:
http://w3.c-plusplus.info/forum/viewtopic.php?t=39342

aber "abschneiden"? Leider keine Ahnung.

- Patrick

adapto

Treue Seele

  • »adapto« ist der Autor dieses Themas

Beiträge: 147

Wohnort: Berlin

Beruf: Student

  • Private Nachricht senden

3

25.08.2004, 02:36

ja, ich meinte abschneiden. trotzdem danke.

4

25.08.2004, 03:10

Also Runden könntest du so:

C-/C++-Quelltext

1
2
float wert = 2345.3436789;
    wert = floorf(wert*100 + .5)/10;


Dabei kannst du mit der letzten Zahl die Nachkommstellen bestimmen.
10 => 1 Nachkommastelle
100 => 2 Nachkommastellen
usw.

Ist sicher nicht die Beste Lösung :ohoh:

adapto

Treue Seele

  • »adapto« ist der Autor dieses Themas

Beiträge: 147

Wohnort: Berlin

Beruf: Student

  • Private Nachricht senden

5

25.08.2004, 11:08

um abzurunde caste ich auf int und dann zurück. also so:
y= float(int(x*100))/100;

unsigned int

Alter Hase

Beiträge: 512

Wohnort: Bonn

Beruf: Schüler; C#-Programmierer in einer kleinen Firma

  • Private Nachricht senden

6

25.08.2004, 11:15

gibts nicht ne funktion precision() oder so!? Bin mir nicht sicher, kannst ja mal nach dem Stichwort nachschlagen... :)

*edit:* So, da ich jetzt zum Aufstehen und zum Buchgreifen zu faul war :), hab ich mal bei den Leuten von msdn.microsoft.com nachgeschlagen:
http://msdn.microsoft.com/library/defaul…seprecision.asp
"Tu es. Oder tu es nicht. Es gibt kein Versuchen."
StarWars

www.tron2d.de.vu

adapto

Treue Seele

  • »adapto« ist der Autor dieses Themas

Beiträge: 147

Wohnort: Berlin

Beruf: Student

  • Private Nachricht senden

7

25.08.2004, 23:40

@uint
danke

unsigned int

Alter Hase

Beiträge: 512

Wohnort: Bonn

Beruf: Schüler; C#-Programmierer in einer kleinen Firma

  • Private Nachricht senden

8

26.08.2004, 00:22

immer gerne :)
"Tu es. Oder tu es nicht. Es gibt kein Versuchen."
StarWars

www.tron2d.de.vu

big_muff

Alter Hase

Beiträge: 460

Wohnort: Schweiz

Beruf: Informatikstudent (4. Semester)

  • Private Nachricht senden

9

26.08.2004, 17:22

Falls du das zufälligerweise für die ausgabe von float-Werten in eine Zeichenkette benötigst habe ich noch eine Möglichkeit.

Du gibst bei sprintf() statt "%f" einfach "%.3f" für 3 Kommastellen oder "%.2f" für 2 Kommastellen, usw.
Nur Idioten halten Ordnung, ein Genie beherrscht das Chaos.[size=7]

[/size]HardFate - Ein Start, Ein Ziel, Viele Wege[size=7]

[/size]Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.

10

26.08.2004, 23:30

;p

Hallo!

@big_muff:

Ich weiss, mein Beitrag ist eher kontra-produktiv, aber dein Slogan hat mich echt zum Lachen gebracht! :-D
Find ich gut!

Toto

Werbeanzeige