keine Exponetialdarstellung ohne CDec

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: keine Exponetialdarstellung ohne CDec

Beitrag von Stephan »

Woher soll denn die Ersatzfunktion automatisch wissen wieviele Nachkommastellen "gewünscht" sind?
und vor allem: woher sollen wir wissen worum es hier überhaupt geht.

Ich habe das Problem, das aus dem Thread überhaupt nicht KLAR hervorgeht wie der Problemsatand ist unnd was konkret erreicht werden soll, mehrfach thematisiert. Ich habe höflich darauf hingewiesen das mit den jetzigen Angaben nur bekannt ist das mit cDEc IRGENDWAS nicht richtig funktioniert, jedoch nicht KONKRET was unter welchen KONKRETEN Umständen.
Ich hatte ebenso um nachvollziehbare Beispielwerte gebeten. Gekommen ist NICHTS was geeignet wäre die LÖsung des Problems voranzubringen.


Ich sage jetzt hier zum letzten Male "Sorry" und weise gleichzeitig darauf hin das ich sehr gerne bereit wäre zu helfen wenn es klare Ansätze vom Threadstarter gäbe.

Was Du wohl brauchst ist eine Rundungsfunktion.
äh wieso, cDec rundet jedenfalls nicht.


Und ich freue mich hier schon wieder für sätzelange Dankesformeln vom Threadstarter verbunden mit gleichzeitig NULL Information, weil offensichtlich nicht verstanden wird das es zur Lösung Fakten braucht und keinen Smalltalk.



Gruß
Stephan
erikafuchs
******
Beiträge: 690
Registriert: Di, 13.02.2007 17:38
Wohnort: Büttelborn

Re: keine Exponetialdarstellung ohne CDec

Beitrag von erikafuchs »

Lieber Stefan,
Kann ich leider nicvht nachvollziehen, bei mir funktioniert alles bestens
... stimmt, solange CDec dasteht - aber lasse mal CDec weg, oder ersetze es durch was anderes - dann klappt es nicht mehr.
Lieber Balu,
da hast du mich wieder erwischt, ich kann mich erinnern, dass ich dieses Problem schon mal hatte (ich hatte allerdings in Erinnerung, dass ich es gelöst hatte). Bei der Multiplikation stimmen auch Ergebnisse kleiner als Eins. Ich behaupte aber, dass war der einzige Fall. Ansonsten (behaupte ich mal) funktionierten alle Funktionen. Dieser Fehler ist ja aber ein Problem der Genauigkeit von Fließkommazahlen und hat eigentlich nichts mit meiner Aufgabe zu tun. Hier ein Beispiel dazu von Andrew Pitonyak (etwas modifiziert):

Code: Alles auswählen

Sub Main
dim n as single
do 
n = n + 0.2
if n> 5 then print "eigentlich hätte dieser Punkt nicht errreicht werden dürfen!"
loop until n=5
End Sub
Ich möchte eigentlich immer, dass meine Schüler die folgenden Nullen bei Dezimalzahlen weglassen - das welchselt aber zwangsläufig. Ausnahmen sind die Aufgaben zum Runden bei denen sie Nullen ergänzen müssen, je nach Vorgabe und Währungsangaben, da sollte aber 2,3 genauso akkzeptiert werden wie 2,30. Das hatte ja mit cDec genauso funktioniert (bis auf dein Beispiel). Dein Vorschlag werde ich gerne noch einbauen. Wie hast du denn die Beispiele alle generiert, im Normalfall kommen diese Aufgaben ja sehr selten vor?

Da abzusehen ist, dass ich für cDec keinen Ersatz finde, habe ich jetzt versucht es zu ersetzen. Ich habe mindestens 200 Programmzeilen ändern müssen. Dabei habe ich aber garantiert wieder neue Fehler eingebaut. Lieber Balu, du hast dich da ja richtig reingekniet, wenn du willst, kannst du dir die Testversion (3.001x) im Laufe der nächsten Woche von unserer Schulhompage runterladen.
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: keine Exponetialdarstellung ohne CDec

Beitrag von Stephan »

... stimmt, solange CDec dasteht - aber lasse mal CDec weg, oder ersetze es durch was anderes - dann klappt es nicht mehr.
Sind wir hier im Irrrenhaus(?)
Warum soll ich bitte cDec weglassen wenn es doch hier die ganze Zeit um einen Ersatz für cDec geht oder habe ich das nun auch falsch verstanden? Wie also könnte man überhaupt annehmen das es ohne CDec, oder einben entsprechenden Ersatz, gehen könnte bzw. was soll die Tatsache das es ohne das nicht geht, WAS WIR JA BEREITS WUßTEN, uns jetzt sagen.

Entschuldigung, nur ich bin jetzt hier raus. Ich habe insgesamt sicher 3-4 Stunden damit verbracht über DEin Problem nachzudenken um eine Lösung zu finden und darf mir jetzt hier als Dank dafür noch dumm kommen lassen, denn zu dem Quatsch das Du uns hier etwas als Beispiel lieferst und mir (wenn ich feststelle das dort überhaupt kein FEhler auftritt) dann antwortest das der Fehler dann auftreten würde wenn ich gerade das weglasse wozu Du die ganze Zeit eine Lösung willst (nämlich einen funktionierenden Ersatz für cDec) fehlen mir einfach nur noch die Worte.


Schluß, aus, vorbei, ohne mich. Noch viel 'Freude' den weiteren Mithelfern.

Da abzusehen ist, dass ich für cDec keinen Ersatz finde
WO ist das abzusehen? WO?

Wir hätten schon längst eine Lösung wenn Du einfach einmal vernünftigen Input liefern würdest. Und es ist zweifelsohne kein vernünftiger Input z.B. zu sagen das bei bestimmten Wertenb Fehler auftreten (DAS glaube ich Dir) aber keine Beispielwerte dafür zu liefern bei denen konkret der Fehler auftritt UND gleichzeitig nicht nachzufragen WIE es ggf. mögliche wäre solche Werte zu liefern, falls du es nicht weißt.

Die Behauptung das sich kein ERsatz für cDec finden ließe ist jedenfalls bisher völlig unbegründet oder Du weißt viel mehr als wir und enthältst uns wichtige Informationen vor.
Ich habe mindestens 200 Programmzeilen ändern müssen.


WOZU?

Ich hatte Dir bereits geschrieben das Du den ERsatz für CDec in einer Function kapseln solltest und jetzt tust Du das nicht und beschwerst Dich dann über die unnütze Arbeit die Dir dadurch entsteht(?)
Lieber Balu, du hast dich da ja richtig reingekniet, wenn du willst, kannst du dir die Testversion (3.001x) im Laufe der nächsten Woche von unserer Schulhompage runterladen.
WOZU soll der 'liebe Balu' sich das antun? Wieder nur höfliches Gelabere statt FAKTEN, wie ich bereits vermutete:
Und ich freue mich hier schon wieder für sätzelange Dankesformeln vom Threadstarter verbunden mit gleichzeitig NULL Information [...]

Ich hätte Dir sehr gerne INHALTLICH geholfen eine Lösung zu finden, nur, wie oben gesagt, ich bin jetzt raus, denn es ist wirklich kein Stil des Umgang immer nur wachsweiches Gerede und UNBEGRÜNDETE Vermutungen zu hören statt endlich mal vernünftige Infos.

Ich bin im Übrigen sicher das sich eine Lösung finde ließe, und für mich wäre es interessant gewesen dabei mitzuhelfen, aber nicht in diesem Stil des ewigen unkonkreten Herumgeredes. UNd ich meine genau das SElbige, nämlich "unkonkret" denn schreiben tust Du über 'Gott und die Welt' nur NÖTIGE Fakten benennst Du nicht.

*ein* Beispiel:
Selbst z.B. das, wirklich winzige Faktum, im welchem Bereich denn die Zahlen zu liegen hätten ist nicht einmal geklärt, trotz reichlicher Prosa mit 3 Stellen vor oder nach dem Komma oder ... oder ... alles Mögliche, nur Null KONKRETE Info.
(Übrigens wäre natürlich auch die Info das die Zahlen beliebig sein können ohne Zweifel eine klare Info, nur genau die gibst Du nicht sondern triffst eingrenzende Aussagen aber gleichzeitig keine vollständigen Aussagen zur Größe der Zahlen.)

oder noch ein Beispiel:
Du schreibst eine Riesenantwort mit Belanglosigkeiten, nur z.B. den erkennbar wichtigen Fakt ob nun die Vermutung zuträfe es ginge Dir um Runden (das vermutet Balu) oder ob meine Annahme zuträfe das es Dir nicht darum geht (weil ich glaube verstanden zu haben die Nachkommastellenanzahl müßte beliebig sein bzw. geht von keine bis drei) würdigst Du keine Wortes, so das nun hierzu weiterhin niemand weiß was Fakt ist, obwohl eine Antwort leicht möglich wäre, dfenn es geht ja hierbei um eine Vorraussetzung die Du selbst zu entscheiden hast.


Gruß
Stephan
erikafuchs
******
Beiträge: 690
Registriert: Di, 13.02.2007 17:38
Wohnort: Büttelborn

Re: keine Exponetialdarstellung ohne CDec

Beitrag von erikafuchs »

Lieber Stefan,
du sagst, du bist raus, ich antworte trotzdem nochmal. Anscheinend haben wir aneinandervorbei geredet. Es ist mir allerdings nicht klar wo bei meinem letzten Beitrag dein Problem liegt. Ich brauche Hilfe dafür wie ich die fünfte Programmzeile abändern kann, um eine Kommazahl zu erhalten, die das Problem der Ungenauigkeit von Fließkommazahlen beseitigt. Bitte aber nur in der fünften Programmzeile! Mit cDec geht es nunmal - cDec gibt es aber beim Mac nicht!

Code: Alles auswählen

Sub Einheiten_umwandeln
	Dim zahl2, zahlm, Einagbe, typ as double
	dim EinhL, Ergebnis, Eingabe as string 

	EinhL="mm"
	zahl2=(Zehnerpotenz3)          'Jetzt halt ohne Cdec !!!
	zahlm=CInt(rnd()*10+1)*(zahl2)   
    typ=22
    select case typ
    '
    '
    case 22
		Aufgabe=zahlm*10 & EinhL        'Davon gibt es etwa 50 verschiede Aufgaben mit verschiedenen Einheiten
    '                                   (und noch viele andere Aufgabensorten), die ich nicht einzel umformatieren wollte.
    '                                    Außerdem funktioniert die Ergebniskontrolle nicht wenn
    '                                    ich nur die Aufgabe mit "Aufgabe=format(zahlm*10,"0.#####") & EinhL" formatiere.
    End select
	Ergebnis=zahlm
    Eingabe = inputBox ("Wandle in cm um :" & Aufgabe)
    if trim(Eingabe)=Ergebnis then 
    	print "richtig"
    else
    	print "falsch"
    end if		
End Sub

function Zehnerpotenz3 as single
   Zehnerpotenz3=(10^(cint(rnd()*1-3))) 'Sobald hier eine Zahl kleiner/gleich 0,01 entsteht wird die Aufgabe in Exponentendarstellung
end function                            ' angezeigt wenn CDec in der vierten Programmzeile nicht zur Verfügung steht.  
Wenn ich an anderer Stelle Änderungen vornehme muss ich das nunmal in hunderten Programmzeilen anpassen, da die Stellen hinter dem Komma nunmal sich immer ändern. Ich verstehe jetzt dein Problem nicht.
WO ist das abzusehen? WO?
Mein erster Beitrag dazu war im letzten Jahr und ich habe meinen Schülern versprochen nach den Osterferien eine Lösung zu liefern. Das habe ich jetzt geschafft, fürchte nur, dass in diesem neuen Programm jetzt wieder neue Fehler drin sind.
Ich hatte Dir bereits geschrieben das Du den ERsatz für CDec in einer Function kapseln solltest
Keine Ahnung, wie ich das tun sollte. Ich habe CDec etwa zehnmal in meinem Programm eingebaut und habe an obigem Code gezeigt dass es mit cDec die gewünschten Ergebnisse bringt und ohne nun mal nicht - was willst du mehr?
Warum habe ich 200 Programmzeilen ändern müssen: Ich habe cDec in der fünften Programmzeile weggelassen und habe, wie in der Beschreibung unter case 22 erläutert, halt alle 50 case Fälle mit einem "format" Befehl versehen - und das nicht nur bei diesem Aufgabentyp sondern bei vielen anderen. Außerdem habe ich auch die Ergebniskontrolle zu

Code: Alles auswählen

       if format(Eing,"0.####")=format(Erg,"0.####") then ...
geändert. Vielleicht bin ich zu blöd, aber eine andere Möglichkeit habe ich nicht gefunden.
Pit
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: keine Exponetialdarstellung ohne CDec

Beitrag von Stephan »

Ich brauche Hilfe dafür wie ich die fünfte Programmzeile abändern kann, um eine Kommazahl zu erhalten, die das Problem der Ungenauigkeit von Fließkommazahlen beseitigt.


Genau an der Stelle (mal abgesehen davon das Du dort noch keinen Code gepostet hattest) waren wir bereits am 06.04. und nachdem ich bezüglich unklarer bzw. nicht vorhandener Informationen intervenierte sagtest Du sinngemäß das Du verstanden hättest Dich aber erst in einigen Tagen drum kümmern kannst.
Nachdem ich mich nun Anfang April wirklich reingehängt hatte und glaubte Du hättest verstanden welcher WEg zu beschreiten ist um das Problem in den Griff zu bekommen sagst Du mir jetzt allen Erstes das wir jetzt die ganze Diskussion nochmals beginnen müßten?

Der jetzt gepostete Code entspricht zumindest dem denn er berücksichtigt überhaupt nicht was wir schon besprochen hatten, das war also alles für die Katz.
Ich verstehe wirklich nicht was Du tust und wie Du überhaupt zu einer Lösung kommen willst wenn Du permanent Dinge ignorierst oder eben über ständig neue Dinge sprichst ohne das irgendein Ziel oder eine Systematik in DEinen Äußerungen ersichtlich wäre.
Wenn ich an anderer Stelle Änderungen vornehme muss ich das nunmal in hunderten Programmzeilen anpassen
Nein, das mußt Du eben nicht, ICH HATTE DIR DAS EXTRA GESCHRIEBEN
Mein erster Beitrag dazu war im letzten Jahr und ich habe meinen Schülern versprochen nach den Osterferien eine Lösung zu liefern.
Und das hat jetzt was mit dem Thema zu tun?

ES tut mir wirklich leid nur wie Du hier diskutierst ist absolute Veralberung ... entweder Du verstehst nicht worüber wir sprechen, oder Du ignorierst was man Dir anwortet bzw. was sich aus der Diskussion ergibt.

DU HAST am 04.04. den Thread hier begonnen und ICH kann keinen Grund dafür finden warum bereits geklärt sein sollte das es keine ERsatz für cDec geben könnte. Im GEgenteil hielte ich einen Ersatz für CDec möglich wenn wir ENDLICH EINMAL ZUM THEMA KÄMEN und Du endlich einmal KONZENTRIERT UND KONKRET ANWORTEN würdest!

Und WEIL ich das so sehe habe ich Dich Gefragt wie Du jetzt zu der Behauptung kämst das es nicht möglich wäre einen Ersatz für cDec zu finden. Und wenn Du darauf eine Antwort weist dann nenne sie mir, auf jeden Fall ist es keine Antwort darauf mir hier zu sagen welche Termine Du mit DEinen SChülern besprochen hättest.

Wie ist denn der Stand?
Bereits am 06.04. sagte ich insgesamt das es noch bestimmter Infos bedürfte um das Problem systematisch angehen und lösen zu können. Da ich diese Infos immer noch nicht habe, habe ich mir bisher noch garkeinen konkreten Weg der Lösung überlegen können, was etwas völlig Anderes ist als das es keinen WEg gäbe und ich verstehe beim besten Willen deshalb nicht wie du zu der Aussage kommst das es nicht geht.

(es geht hier natürlich NICHT um meine Person, nur ich sehe hier auch keinen DRitten der behauptet hätte es gäbe keine Lösung und das ist wohl hauptsächlich deshalb so weil KONKRETE Informationen fehlen)
Keine Ahnung, wie ich das tun sollte.
Indem Du den Ersatz für cDec in eine eigene Function schreibst und dann im ursprünglichen Code überasll wo cDEc genutzt wird diese, eigene, Funktion statt cDec benutzt.
Ich hatte Dir das bereits am 06.04. geschrieben:
versuche bei solchen Dingen nun nicht etwa überall wo früher cDec benutzt wurde den kompletten Ersatzausdruck hinzuschreiben, denn der sollte nur einmal in einer Function stehen die dann als Ersatz für cDec dient
Vielleicht bin ich zu blöd, aber eine andere Möglichkeit habe ich nicht gefunden.
Oh nö, von 'zu blöd' habe ich nirgens gesprochen, und würde ich auch nicht sprechen.
Was Du tust ist das Du keine konkreten Antworten gibt wenn man nach Informationen fragt und weil dadurch natürlich die Situation entsteht das man zu keiner Lösung kommt bzw. man nicht auf dem Weg zu einer Lösung vorrankommt, EBEN WEIL GRUNDLEGENDE INFORMATIONEN FEHLEN, gleichzeitig glaubst Du anscheinend postulieren zu müssen es ginge nicht.


Meine Laune ist jedenfalls durch Deinen Stil der Diskussion völlig verdorben und deshalb sprach ich davon das ich mich jetzt hier ausblenden will.
Es ist ganz einfach so das Du es nicht schaffst konstant und konkret beim Thema zu bleiben, aufgeworfene Fragen zu beantworten und systematisch vorzugehen, stattdessen ignorierst Du teils Fragen, teils redest wechselnd über andere Dinge und teils vergisst teils bereits Besprochenes und so kommt man dann schlichtweg zu keiner Lösung.
Und das hat, und mir ist diese Feststellung wichtig, überhaupt nichts damit zu tun das ich Dich für blöd hielte sondern nur damit das es hier um ein konkretes technisches Problem geht und man, wenn man das lösen will, konzentriert diskutieren muß und nicht nur einen netten Smalltalk halten kann.



Gruß
Stephan
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: keine Exponetialdarstellung ohne CDec

Beitrag von Stephan »

um einen allerletzten Versuch zu unternehmen zu konkreten Informationen zu kommen umreiße ich einige wesentliche Fragen wie folgt:

Ich habe verlässlich bisher NUR verstanden das mit cDec IRGENDWAS nicht funktioniert.


Teils ist die Rede davon das es zu 95%(?) funktioniert, teils dann davon das es unter Mac garkein cDec gibt?

Mir ist nach wie vor unklar ob es jemals mit cDec IRGENDWO KOMPLETT richtig funktioniert hat? Mir ist unklar ob es jemals vorher bereits einen (Teil-)ERsatz für cDec gab der genutzt wurde?

Mir ist unklar, wenn es denn Probleme gibt, warum Du gehindert bist konkrete Beispiele zu nennen? Also KONKRETE Werte bei denen CDEc nicht wie gewünscht funktioniert.

Mir ist unklar ob es richtig ist das der Kern der Notwendigkeit cDec zu nutzen eigentlich nur der ist bestimmte Zahlen in bestimmter Darstellung (Nicht-Exponentialdarstellung) auszugeben? Mir ist dann unklar in welchem KONKRETEN Bereich diese Zahlen liegen sollen, also von ... bis bzw./und nach wieviel Schreibstellen absolut bzw./und Nachkommastellen zulässig sind.


Das sind, wie gesagt, einige Fragen die mir einfallen, vollständig ist diese Fragenliste nicht.


Gruß
Stephan
erikafuchs
******
Beiträge: 690
Registriert: Di, 13.02.2007 17:38
Wohnort: Büttelborn

Re: keine Exponetialdarstellung ohne CDec

Beitrag von erikafuchs »

Also kurz:
Mit Cdec funktioniert es zu 99,99% (Balu hat ein Beispiel gefunden wo es nicht funktioniert 0,01%).
Beim Mac und unter Windows gibt es die cDec Funktion nicht, das Programm funktioniert (nahezu) nicht. Einige meiner Schüler haben aber einen Mac und ich wollte das Programm so umschreiben dass es mit dem Mac funktioniert. Ein Beispiel war in meinem Code zitiert. Wenn cDec in der Zeile 5 vorhanden ist "zahl2=CDec(zehnerpotenz3)" funktioniert alles - wenn du cDec weglässt, kommen unlösbare Zahlen sobald die Funktion "Zehnerpotenz3" die Zahl 0,01 oder kleiner erzeugt. Lass den Code mit "zahl2=(zehnerpoten3)" zwei- dreimal ablaufen und dann mit "zahl2=cDec(zehnerpotenz3)" und du wirst sehen was ich meine. Wenn du mir sagen kannst, wie ich das "cDec" durch irgendwas anderes ersetzen kannst, bin ich happy!
Vielleicht war das unser Problem: Ich will cDec nicht ersetzen weil es nicht funktioniert, ich will es ersetzen weil es unter Mac nicht existiert. Besser?
Pit
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: keine Exponetialdarstellung ohne CDec

Beitrag von Stephan »

Beim Mac und unter Windows gibt es die cDec Funktion nicht, das Programm funktioniert (nahezu) nicht.
WARUM kann ICH die Function cDec dann unter Windows benutzen?
Ein Beispiel war in meinem Code zitiert.
Nein, das war es eben nicht, denn Du ignorierst voilkommen den Diskussionsstand vom 06.04., aber das schrioenb ich ja bereitsd und Dir ist es scheinbar eine FReuinde das hiere nochmals zu ignorieren! (es geht nicht um die Rückgabe der Function sondern allein darum was rnd liefert, hierzu bat ich bereits am 06.04. um Beispiele, meine Bitten ignoirierst du)
Wenn du mir sagen kannst, wie ich das "cDec" durch irgendwas anderes ersetzen kannst, bin ich happy!
Dazu müßtest Du mir ZUMINDEST die jetzt (15.04.12 17:01) formulierten Fragen KONKRET beantworten, da Du aber TROTZ MEHRFACHER BITTEN(!") dazu anscheinend zu ignorant oder zu bequem ist ist jetzt Schluß.

Für wie leidensfähig hälst Du eigentlich freiwillige Helfer in diesem Forum hier, das Du glaubst statt zur Lösung Deines Problems mit konkreten Informationen und Antworten beizutragen, die diesbezügliche Bitten einfach zu ignorieren? Dein Verhalten ist ist vollkommen inakzeptabel.
Besser?
Meinst Du diese FRage ERnst? Du beantwortest konkret und eindeudig gestellte Fragen WIEDER NICHT konkret bzw. nur zu geringen Teilen oder gar falsch (funktioniert cDec unter Windows tatsächlich nicht?) und fragst ob das bessser ist?


Stephan
erikafuchs
******
Beiträge: 690
Registriert: Di, 13.02.2007 17:38
Wohnort: Büttelborn

Re: keine Exponetialdarstellung ohne CDec

Beitrag von erikafuchs »

Lieber Stefan,
ich bin sehr geknickt, dass ich dich so nerve, es liegt nicht in meiner Absicht aber ich befürchte wir reden aneinander vorbei. Ich habe diesen Treat nochmals von vorne gelesen und muss zugeben, dass das Problem anfänglich nicht klar war wenn dem Leser nicht bekannt ist, dass es die Funktion cDec nur unter Windows gibt, nicht aber unter MacOS und Linux. Ich hatte dieses Problem an anderer Stelle schon mal zur Sprache gebracht und in diesem Treat nicht genügend herausgestellt. Jetzt habe ich :( in meiner letzten Antwort auch noch behauptet cDec liefe nicht unter Mac und Windows, es hätte natürlich heißen müssen: Es läuft nicht unter Mac und Linux. Das ist echt blöd gelaufen, hier verstehe ich deinen Ärger, wenn das nicht klar ist, versteht man die ganze Diskussion nicht.
Also Unter Windows funktioniert alles (99,99) beim Mac nicht! Das ist das eine was ich zum Verständnis voraussetzen muss.
Das zweite was man wissen muss ist, dass bei der Berechnung von Fließkommazahlen Ungenauigkeiten entstehen und z.B. ein Drtittel mal 3 nicht unbedingt Eins ergibt.
CDec sorgt in meinem Programm dafür (wie auch immer) dass diese Fehler nicht auftauchen (zu 99,99%). Außerdem unterdrückt es die Exponentialdarstellung.
sondern allein darum was rnd liefert
Was rnd liefert kann ich dir nicht sagen, weil ich rnd() nur nutzen kann wenn ich die Anzahl der Nachkommastellen angebe - kann ich aber an der Stelle an der ich cDec einsetze nicht (siehe Code).

Ich befürchte, auch diese Antwort stellt dich, lieber Stefan nicht zufrieden :( . Ich glaube wir beenden diese Diskussion jetzt wirklich. Ich hatte ja schon geschrieben, dass ich in der Zwischenzeit alle Cdec's in meinem Makro rausgeschmissen und in etwa 200 Programmzeilen format Befehle eingesetzt habe, wahrscheinlich sind hier einige Fehler entstanden, die werde ich aber auch irgendwie in den Griff bringen.

Tut mir Leid, wenn ich hier jemanden die Zeit gestohlen habe.
Pit
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: keine Exponetialdarstellung ohne CDec

Beitrag von balu »

Hallo Leute,
erikafuchs hat geschrieben: Wie hast du denn die Beispiele alle generiert
Eine Schleife mit 5000 durchläufen um den von mir geposteten Code, mit Zellausgabe.

erikafuchs hat geschrieben: im Normalfall kommen diese Aufgaben ja sehr selten vor?
Stimmt wohl. Aber einmal ist keinmal, und kann immer wieder vorkommen. Und so was muss vermieden werden. Denn schließlich hast Du einen Rechentrainer erstellt, und da dürfen solche Fehler im Sinne des Lerneffekts nicht auftretern.


Stephan hat geschrieben:
Was Du wohl brauchst ist eine Rundungsfunktion.
äh wieso, cDec rundet jedenfalls nicht.
Stimmt wohl. Aber um eine Exponetialdarstellung und/oder eine 20 Stellige Nachkommazahl zu vermeiden, empfehle ich eine Rundungsfunktion. Oder wie würdest Du das Problem angehen wollen?


Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
erikafuchs
******
Beiträge: 690
Registriert: Di, 13.02.2007 17:38
Wohnort: Büttelborn

Re: keine Exponetialdarstellung ohne CDec

Beitrag von erikafuchs »

äh wieso, cDec rundet jedenfalls nicht.
das ist ja schon richtig, aber kann mir jemand erklären was cDec eigentlich macht? Klar, es erzeugt eine Dezimalausgabe anstelle einer Exponentialdarstellung, aber warum verhindert cDec auch diese 20 Stellen hinterm Komma (statt 2,0 1,999998998 o.ä.). Wenn man in dem Code

Code: Alles auswählen

Sub Main
dim n as single
n=4
do 
n = n + 0.2
print n
loop until n=5
End Sub
in der vorletzten Zeile anstelle von "until n=5" "until cDec(n)=5" eingibt funktioniert ja das Ganze, ansonsten entsteht eine Endlosschleife. Was macht cDec da, ist das Runden? Ich gehe davon aus, dass meine Problem lösbar wäre, wenn das klar wäre.
Pit
Antworten