gelöst: Exponentialdarstellung verhindern

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

Moderator: Moderatoren

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

gelöst: Exponentialdarstellung verhindern

Beitrag von erikafuchs »

Hallo zusammen:
Kennt ihr das:

Code: Alles auswählen

Sub Main
dim  Z, N as integer
Z=3
N=50
print Z & " " & N & " " & (Z/N)
Z=3
N=20
print Z & " " & N & " " & (Z/N) 
End Sub
...wenn die erste Stelle hinter dem Komma eine Null ist, wird der Quotient in Exponentialdarstellung ausgegeben, sonst nicht. Wie kann ich die Exponentialdarstellung verhindern. Vorher habe ich das mit CDec gemacht, das geht aber mit Linux nicht!
Hilfe!
Danke für eure Hilfe
Pit
Zuletzt geändert von erikafuchs am Di, 31.01.2012 16:50, insgesamt 1-mal geändert.
bst
*****
Beiträge: 222
Registriert: Mo, 18.01.2010 16:14
Wohnort: Ilsfeld

Re: Exponentialdarstellung verhindern

Beitrag von bst »

Abend,

benutze Format. Siehe: http://help.libreoffice.org/Basic/Forma ... on_Runtime

Code: Alles auswählen

print Z & " " & N & " " & Format((Z/N),"0.0#####")
HTH, Bernd
erikafuchs
******
Beiträge: 690
Registriert: Di, 13.02.2007 17:38
Wohnort: Büttelborn

Re: Exponentialdarstellung verhindern

Beitrag von erikafuchs »

Lieber Bernd,
vielen Dank erstmal. Leider funktioniert das nicht wie ich es brauche. Meine Zahlen werden mit Zufallszahlen erzeugt. Das Ergebnis sind mal ganze Zahlen, mal Zahlen mit einer unterschiedlichen Anzahl Dezimalstellen. Ein Beispiel, meine Schüler müssen Brüche in Kommazahlen umwandeln. Die Vorgabe (erfolgt wie gesagt mit Zufallszahlen) das Ergebnis kann dann 3/10=0,3; 23/100=0,23; 1/8=0,125; oder auch 4/2=2 sein. Bei der Aufgabe 3/50 wird jetzt halt die Eingabe 6E-02 statt 0,06 erwartet.
Viele Grüße
Pit
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Exponentialdarstellung verhindern

Beitrag von Karolus »

Hallo
Der Vergleich (in Calc ) 6e-02=0,06 ergibt WAHR, also so wie dus möchtest.

Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
erikafuchs
******
Beiträge: 690
Registriert: Di, 13.02.2007 17:38
Wohnort: Büttelborn

Re: Exponentialdarstellung verhindern

Beitrag von erikafuchs »

Da meine Schüler aber auch z.B. Einheiten eingeben müssen, ist die entsprechende Variable eine Stringvariable und da bekomme ich die Umwandlung nicht hin, das ging mit CDec, aber nicht mit val:

Code: Alles auswählen

Sub Main
	dim  Z, N as integer
	dim e as string
	Z=3
	N=50
	e = "0,6"
	if  Z/N = val(e) then 
   		print "richtig"
	else
   		print "falsch: " & Z/N & " = " & e
	end if   
end sub
Grüße
Pit
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Exponentialdarstellung verhindern

Beitrag von Karolus »

Hallo

Lieber Pit
0,6 ist nicht das Ergebnis der Division 3 / 50 sondern vmtl. 0,06 :lol:
Zudem musst du innerhalb Basic wohl oder übel den Dezimalpunkt verwenden, dann klappt auch die Umwandlung mit val( )

Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
erikafuchs
******
Beiträge: 690
Registriert: Di, 13.02.2007 17:38
Wohnort: Büttelborn

Re: Exponentialdarstellung verhindern

Beitrag von erikafuchs »

Lieber Karo,
vielen Dank soweit. Die Null ist heute morgen um halb Sieben wohl verlorengegangen. Das mit der Null ist zwar ein Problem, hilft mir aber weiter. Mit dem Befehl CDec wird nur das Komma als richtig gewertet, mit val muss man dann wohl ein Punkt setzen. Das kann ich meinen Schülern so aber nicht beibringen. Das heißt, wenn niemand eine bessere Idee hat muss ich in den Eingaben der Schüler das Komma durch einen Punkt ersetzen und dann erst vergleichen. ... Hat jemand eine Idee warum CDec nur unter Windows funktioniert? ...
Grüße von
Pit
erikafuchs
******
Beiträge: 690
Registriert: Di, 13.02.2007 17:38
Wohnort: Büttelborn

Re: Exponentialdarstellung verhindern

Beitrag von erikafuchs »

So, ich nochmal,
ich habe jetzt rumprobiert. Bernds Lösung schein am einfachsten zu funktionieren, man muss nur die Formatanweisung so ändern, dass die erste Stelle hinterm Komma nicht Null sondern # ist, dann werden auch ganze Zahlen als solche angezeigt. Dank euch Allen!
Grüße
Pit
PS.: Allerdings war CDec einfacher
Antworten