Zahl einteilen

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

totonak5

Betreff: Zahl einteilen

BeitragMi, Dez 14, 2005 18:25
Antworten mit Zitat
Benutzer-Profile anzeigen
hi!


ich weiß nicht wie ich das machen kann:

angenommen wir haben die variable namens zahl, diese hat den wert 2.23.
wie mache ich das, dass ich diese variable in 2 weitere einteile, wobei die eine den wert vor dem komma, also 2, und die andere den wert nach dem komma, also 23, haben soll?


danke
lg
Just for Fun!
Jesus loves U!
 

CodeMaster

BeitragMi, Dez 14, 2005 19:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Leute, wenn ihr nur mal eine Minute nachdenken würdet...


myfloat# = 3.1415

ganzzahl = int(myfloat) ;int prinizipiell unnötig, da ganzzahl sowieso integer ist
kommazahl# = myfloat# - int(myfloat)
Dies ist ein Text, der an jeden Beitrag von dir angehängt werden kann. Es besteht eine Limit von 500 Buchstaben.

Zuletzt bearbeitet von CodeMaster am Mo Apr 01, Parse error: syntax error, unexpected ';' in htdocs\viewtopic.php on line 102

Ebola33

BeitragMi, Dez 14, 2005 19:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
1. wandle die variable in string um
2. durchsuche den string nach dem punkt
3. speichere alles links vom punkt sowie rechts vom punkt in eine seperate variable und wandle die von string nach integer oder was auch immer.
ansteckend... Wink
verstaubtes Projekt : http://www.mitglied.lycos.de/ebola33/
 

totonak5

BeitragMi, Dez 14, 2005 19:30
Antworten mit Zitat
Benutzer-Profile anzeigen
@ codemaster

wenn man nur eine minute nachdenken könnte:
hast schon mal was von runden gehört.

bei 5.99 kommt nicht 5 raus, sondern 6, aber macht ja nix


werds mal nach ebolas methode versuchen
Just for Fun!
Jesus loves U!
 

CodeMaster

BeitragMi, Dez 14, 2005 20:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Du wirst es kaum glauben, aber auch dafür gibt es eine sehr simple Lösung. Bedenkzeit: Weniger als 2 Sekunden.


myfloat# = 3.991415 ; ja, geht auch mit 3.00014

ganzzahl = Int(myfloat - 0.5)
kommazahl# = myfloat# - Int(myfloat - 0.5)


Kinder, Kinder... Anstatt einfache Mathematik anzuwenden, werft ihr gleich mit Strings um euch. Performance ist das Zauberwort eines jeden erfolgreichen Programmierers.
Genug von meiner Seite.
Dies ist ein Text, der an jeden Beitrag von dir angehängt werden kann. Es besteht eine Limit von 500 Buchstaben.

Zuletzt bearbeitet von CodeMaster am Mo Apr 01, Parse error: syntax error, unexpected ';' in htdocs\viewtopic.php on line 102
 

totonak5

BeitragMi, Dez 14, 2005 21:45
Antworten mit Zitat
Benutzer-Profile anzeigen
ja, professor, habs nach deiner methode gemacht! Smile
Just for Fun!
Jesus loves U!

Artemis

BeitragMi, Dez 14, 2005 22:00
Antworten mit Zitat
Benutzer-Profile anzeigen
oder statt int ein ql:Floor

Hagbard

BeitragMi, Dez 14, 2005 22:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Das liefert aber laut OH bei 1.9 1.

mfg
  • Zuletzt bearbeitet von Hagbard am Sa, Apr 17, 2010 16:53, insgesamt einmal bearbeitet
 

Ava

Gast

BeitragMi, Dez 14, 2005 23:10
Antworten mit Zitat
Blacky hat Folgendes geschrieben:
Das liefert aber laut OH bei 1.9 1 ab und das ist wirklich sehr ungenau.


Aber genau Sinn und Zweck dieser Funktion... Rolling Eyes

Hummelpups

BeitragDo, Dez 15, 2005 0:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Boah, echt, Kiddies denkt mal nach ey.
Das is voll schlimm, Klugscheißen und dann denken
das Int() rundet Rolling Eyes

Naja, ich hoffe das ist euch eine Lehre und ihr denkt
nun erst mal nach bevor ihr so nen dünnpfiff verbreitet.

Sry, aber es ist ja so.

IMurDOOM
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus

Ebola33

BeitragDo, Dez 15, 2005 0:45
Antworten mit Zitat
Benutzer-Profile anzeigen
*g* ich wusste dass das hier so losgeht. Kinder die Sache mit den Strings war einfach mal um zu zeigen dass es immer mehrere Möglichkeiten gibt ein Problem zu lösen. Ob nun über 2 umständliche Umwege mit Stringkonvertierung oder auf direktem mathematischen wege ist jemandem erstmal egal der eine solche Frage überhaupt stellt.

Trotzdem bin auch ich der Meinung dass dieses Problem leicht selbst zu lösen ist.

mfg ebo
ansteckend... Wink
verstaubtes Projekt : http://www.mitglied.lycos.de/ebola33/

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDo, Dez 15, 2005 2:36
Antworten mit Zitat
Benutzer-Profile anzeigen
on the fly...

var#=2.13

ergebniss1%=Floor(var)
ergebniss2#=var-floor(var)

Hummelpups

BeitragDo, Dez 15, 2005 3:40
Antworten mit Zitat
Benutzer-Profile anzeigen
hatten wir doch schon so ähnlich hectic.
Floor macht in diesem Fall ja das selbe wie Int. Wink

Meinte auch nicht dich ebola. Wink

IMurDOOM
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus

Ctuchik

BeitragDo, Dez 15, 2005 16:37
Antworten mit Zitat
Benutzer-Profile anzeigen
@IMurDOOM:
Aus der Onlinehilfe von Blitzbase:
Zitat:
Wert=INT (Zahl)

Diese Funktion wandelt eine beliebige Kommazahl aus Float oder String zu einem Integerwert. Die Zahl wird dadurch immer gerundet. So wird z.B. aus der Zahl 3.14 die Zahl 3 und aus der Zahl 3.999 die Zahl 4 ermittelt.

Zitat:
Wert#=FLOOR# (Zahl#)

Diese Funktion ist zum Abrunden einer Kommazahl gedacht. Es wird also immer eine ganze Zahl (ohne Nachkommastellen) zurückgeliefert. Dabei wird immer die kleinste Zahl ermittelt. Aus einer Zahl wie 2.9 wird 2 und aus -2.1 wird -3 ermittelt.


Und noch was interessantes aus der Englischen Onlinehilfe:
Zitat:
What about numbers exactly halfway between integers?
The rounding is to the nearest even integer:

Int( 2.5 ) ... produces 2
Int( 3.5 ) ... produces 4

If Int is applied to a string it converts as much as possible:

Int( "10" ) ........ result is 10
Int( "3.7" ) ....... result is 3, stops at "." which can't be part of an integer
Int( "junk3" ) .... result is 0, stops at "j"
Zu den Nebenwirkungen gehören trockener Mund, Übelkeit, Erbrechen, Harnstau, schmerzhafter rektaler Juckreiz, Halluzinationen, Demenz, Psychose, Koma, Tod und Mundgeruch!
Magie eignet sich nicht für alle!
Fraget euren Arzt oder Apotheker!
 

CodeMaster

BeitragDo, Dez 15, 2005 16:48
Antworten mit Zitat
Benutzer-Profile anzeigen
IMurDOOM hat Folgendes geschrieben:
Das ist voll schlimm, Klugscheißen und dann denken das Int() rundet Rolling Eyes
Ehrlich gesagt verstehe ich IMurDOOMs Aussage auch nicht so richtig... Na ja, lassen wir die Kinder spielen.

Back to topic: Eine allgemeine mathematische Form zur Aufspaltung von Floats in Ganzzahlen und Nachkommazahlen im negativen und positiven Bereich ohne Rundung wäre z.B. das hier:

zahl# = -3.9415

ganzzahl = Int(zahl - 0.5 * Sgn(zahl))
kommazahl# = zahl - Int(zahl - 0.5 * Sgn(zahl))
Dies ist ein Text, der an jeden Beitrag von dir angehängt werden kann. Es besteht eine Limit von 500 Buchstaben.

Zuletzt bearbeitet von CodeMaster am Mo Apr 01, Parse error: syntax error, unexpected ';' in htdocs\viewtopic.php on line 102

Hummelpups

BeitragDo, Dez 15, 2005 17:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei mir erzeugt beides 3!!!

Code: [AUSKLAPPEN]

plop1#=3.2
plop2#=3.9

Print Int(plop1)
Print Int(plop2)


Und hier noch mal ein Screen für ungläubige Wink
user posted image

Using BMax 1.14
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus
  • Zuletzt bearbeitet von Hummelpups am Do, Dez 15, 2005 17:20, insgesamt 3-mal bearbeitet

Xaron

BeitragDo, Dez 15, 2005 17:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, aber erzeugt auch das beides 2? Wink

Code: [AUSKLAPPEN]

plop1#=2.2
plop2#=2.9

Print Int(plop1)
Print Int(plop2)


Bei Int funktioniert das Runden eben etwas "anders"...

Gruß - Xaron
Cerberus X - Monkey X Reloaded!

Hummelpups

BeitragDo, Dez 15, 2005 17:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei mir funzt auch das einwandfrei!

user posted image

IMurDOOM
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragDo, Dez 15, 2005 17:56
Antworten mit Zitat
Benutzer-Profile anzeigen
BM <> BB

bei BB2D und 3D und Plus wird entsprechend gerundet!

BlitzMax ist da wohl anders!
[BB2D | BB3D | BB+]

Hummelpups

BeitragDo, Dez 15, 2005 18:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Jop, scheint so.
Finde BMaxs version besser ;D

IMurDOOM
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group