Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Leader4
Anmeldungsdatum: 20.01.2005 Beiträge: 99 Wohnort: Leipzig
|
Verfasst am: 27.02.2006, 15:09 Titel: Probleme bei Variablenformat |
|
|
Hi.
Ich habe ein paar Probleme bei der Darstellung von Variablen. Ich möchte eine Zahl mit 2 Kommastellen anzeigen, zum Beispiel 0.02. Bei einer Singlevariable erscheint dabei 0 (also dasselbe wie INT(0.02)) und bei einer Variable Doppelter Länge, also bei mir NR#, 2.e-002.
Da ich die Zahl aber in einen String umwandeln muss, um sie in ein String-Datenfeld einzuweisen und sie erst später dann wieder in eine numerische Variable zurückwandle, nützt mir ein solches Format nichts.
Denn Mid$(Val(NR$),1,4) wäre dann nicht mehr 0.02 sondern 2.
Auf welchen Weg ist dieses Problem nun zu lösen? Ein paar Versuche mit Print Using ergaben keinen nennenswerten Unterschied und mehr numerische gebrochen-rationale Variabeltypen sind mir nicht bekannt.
Vielen Dank im Voraus.  _________________ Ein richtiger Programmierer muss so richtig faul sein und sich den ganzen Tag mit der Frage beschäftigen, wie man mal wieder etwas einfacher machen kann. |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 27.02.2006, 18:28 Titel: |
|
|
Meine anfängliche Begeisterung für Format[$]
http://forum.qbasic.at/viewtopic.php?t=1830
hält sich jetzt doch sehr in Grenzen. Denn Format$ arbeitet nich fehlerfrei..
(v1ctor weiß das aber schon --> FreeBASIC.net\forum)
http://www.freebasic.net/forum/viewtopic.php?t=3089
Aber für solche Fälle sollte es eigentlich noch reichen.
(Ich glaube, der Fehler bezieht sich auf Double's mit Exponenten-Darstellung)
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO..
Zuletzt bearbeitet von ytwinky am 27.02.2006, 21:17, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 27.02.2006, 20:17 Titel: |
|
|
in print using war nur n bug drin, der is inzwischen draußen, wart einfach auf den nächsten release. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 27.02.2006, 21:16 Titel: |
|
|
Danke MisterD, aber der Unterschied zwischen Print Using".." und Format[$] besteht darin, daß ich die Ergebnisse von Format$ einer Variablen zuweisen kann oder am Bildschirm ausgeben, während ich bei Print Using keine Wahl habe..
..und v1ctor zu fragen, ob nicht bei Print Using .. -->s meine sig
Ich habe das Problem bei meinem Programm so gelöst, daß ich mit Code: | Int(Log(Abs(variable))/Log(10)) | mir den Exponenten hole..
Ist sowieso nicht so wichtig, wie das angezeigt wird, sondern nur, daß es ein kleiner Wert(hoffentlich ) ist.
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 28.02.2006, 03:30 Titel: |
|
|
Log(10) ist doch 1 oder? Der exponent ist einfach nur int(log(abs(n))) _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 28.02.2006, 22:21 Titel: |
|
|
Schau in die Hilfe!
http://freebasic.de/Referenz.php?zeig=tuts&col1=a0d5d0&ref=yes&show=LOG
Log(10) ist alles Andere, nur nicht 1
Das, was FB LOG() nennt, heißt im mathematischen Sprachgebrauch LN
Um vom Logarithmus naturalis in den 10er Logarithmus umzurechnen, wird
die Formel Log10(x)=Log(x)/Log(10) benötigt.
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 28.02.2006, 23:16 Titel: |
|
|
achso, dachte das wäre vllt auch log.. wenns denn ln is dann brauch man das natürlich  _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
|