[gelöst] Formatieren von Zahlen

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

Moderator: Moderatoren

Schwedenbitter
**
Beiträge: 47
Registriert: So, 25.06.2006 13:03
Wohnort: Finsterwalde, Brandenburg

[gelöst] Formatieren von Zahlen

Beitrag von Schwedenbitter »

Hallo,

ich möchte gern ein Makro programmieren, welches Berechnungen mit Gleitkommazahlen vornimmt und die auch ausgibt. Das ist aber nicht mein Problem. Ich möchte aber gern, dass diese Zahlen möglichst einfach als Währung dargestellt werden. Das €-Zeichen davor zu setzen, bekomme ich hin.

Wie schaffe ich es, dass mir OOo die Zahlen mit einer Genauigkeit von 2 Nachkommastellen in Strings umwandelt?

Ich habe schon einige Befehle ausprobiert. Leider ohne durchschlagenden Erfolg.

Gruß, Alex
Zuletzt geändert von Schwedenbitter am So, 27.07.2008 14:58, insgesamt 1-mal geändert.
OpenOffice.org 2.0.2 (stable)
OpenOffice.org 2.0.3 (update am 06.07.2006)
...
OpenOffice.org 4.1.1 (seit August 2014)
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Formatieren von Zahlen

Beitrag von turtle47 »

Hallo Alex,

bringt Dich folgender Code weiter:

Code: Alles auswählen

Sub Zahl_Runden
	FuncAcc = createunoservice("com.sun.star.sheet.FunctionAccess")
	aResult=FuncAcc.callFunction("ROUND", array(13.371399747 , 2))
	myResult = "€ " + aResult
	'myresult =("123,999") 'zum Testen auf Zahl
	myCheck = isnumeric(myresult)
	if myCheck Then print "Zahl" else print "Keine Zahl"
	msgbox myResult
End Sub
Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Schwedenbitter
**
Beiträge: 47
Registriert: So, 25.06.2006 13:03
Wohnort: Finsterwalde, Brandenburg

Re: Formatieren von Zahlen

Beitrag von Schwedenbitter »

Danke Jürgen,

das sieht schon einmal gut aus. Ich vermute, dass die 2 in dem Array die Anzahl der Nachkommastellen angeben soll. Nur leider scheint ihn das bei mir nicht zu interessieren. Wenn ich z.B. 197 (nicht 197,00 oder 197.00) als Wert mitgebe, dann bringt er als Ergebnis auch nur die "197" und nicht - wie gewünscht - die "197,00".

Ich habe in der Zwischenzeit auch gesehen, dass es im Basic die Function Format (Zahl [, Format As String]) gibt. Ich komme aber mit dem Formatstring überhaupt nicht klar. Der von Calc (#.##0 [$€-407];[ROT]-#.##0 [$€-407]) ist es jedenfalls nicht und auch Probieren hat mich hier nicht weitergebracht.

Gruß, Alex

P.S. Wo bekommt man mehr Informationen zum Programmieren mit OOo her, als aus dem lückenhaften Hilfetext? Die Seite StarBasic FAQ kenne ich schon. Dort wird unter anderem Format auch als Runtime Function genannt; nicht aber, wie man sie genau verwendet.
OpenOffice.org 2.0.2 (stable)
OpenOffice.org 2.0.3 (update am 06.07.2006)
...
OpenOffice.org 4.1.1 (seit August 2014)
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Formatieren von Zahlen

Beitrag von turtle47 »

Schwedenbitter hat geschrieben:Ich vermute, dass die 2 in dem Array die Anzahl der Nachkommastellen angeben soll.
Nein, die 2 gibt die letzte Nachkommastelle an wo gerundet wird.

Wenn Du zwei Stellen hinter den Komma brauchst dann hilft das hier:

Code: Alles auswählen

Sub Zahl_Nachkomma
	FuncAcc = createunoservice("com.sun.star.sheet.FunctionAccess")
	aResult=FuncAcc.callFunction("ROUND", array(23 , 2))
	s =  Format(aResult, "0.00")
	myResult = "€ " + s
	msgbox myResult
End Sub
Schwedenbitter hat geschrieben:Der von Calc (#.##0 [$€-407];[ROT]-#.##0 [$€-407]) ist es jedenfalls nicht und auch Probieren hat mich hier nicht weitergebracht.
Das ist das Zahlenformat für die Zelle . Dazu findest Du hier ein Beispiel.

Jetzt alles klar?

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
ykcim
*****
Beiträge: 324
Registriert: Di, 29.07.2003 15:22
Wohnort: Neu-Isenburg
Kontaktdaten:

Re: Formatieren von Zahlen

Beitrag von ykcim »

Hi,
der Rundungbefehl ist überflüssig. Format() rundet von alleine.

mfg
Michael
__
FAQ zu Starbasic -> http://www.starbasicfaq.de
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Formatieren von Zahlen

Beitrag von turtle47 »

Hallo Michael,
ykcim hat geschrieben:der Rundungbefehl ist überflüssig. Format() rundet von alleine.
Danke Michael, daran habe ich überhaupt nicht gedacht.

Schönes Wochenende.

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Antworten