Konvertieren mit CDbl

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

Moderator: Moderatoren

Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Konvertieren mit CDbl

Beitrag von komma4 »

Habe zu Hause noch eine Linuxkiste mit 2.4.1 probiere das heute abend, glaube aber nicht, dass ich ein anderes Ergebnis erhalte.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Konvertieren mit CDbl

Beitrag von komma4 »

im Entwurfsmodus kannst Du die Ausrichtung doch einstellen wie gewünscht ... oder geht das bei NUM Feldern nicht?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Konvertieren mit CDbl

Beitrag von turtle47 »

Hallo Zusammen,

Code: Alles auswählen

msgbox CDbl("12,34")
Unter Suse Linux 11.0 und OO.o 2.4.0 kommt bei mir die Fehlermeldung:
Unzulässiger Wert oder Datentyp
Datentypen unverträglich
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
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Konvertieren mit CDbl

Beitrag von balu »

Hallo Leute,

ich weiß das ich ja nicht "die Kenne" habe, aber trotzdem wollt ich auch mal kurz mitmischen :wink:

Also

Code: Alles auswählen

msgbox CDbl("12,34")
liefert bei mir hier unter Win/XP und OOo 2.2.1, 2.4.1, und 3.1.0 das gewünschte Ergebnis in der Box von 12,34.


Nur wenn ich den Code-Schnipsel

Code: Alles auswählen

    Dim BeitragGesamt As Double
    BeitragGesamt = BeitragGesamt + CDbl(oFrmTest.getControl("numBeitrag_" & i).Text)
noch mit an den Anfang einfüge, bekomme ich den Fehler
BASIC-Laufzeitfehler.
Objektvariable nicht belegt.
was ja wohl auch logisch ist, da ja z.B. i nicht bekannt ist. Aber vielleicht liegt ja genau dort der Hund begraben den toni007 zu schaffen macht, wenn i als INTEGER deklariert ist. Ist ja nur mal so eine Laien Vermutung.



Ich geh dann mal wieder :lol:
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
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Konvertieren mit CDbl

Beitrag von komma4 »

Balu: die Meldung kommt dann von oFrmTest, welches nicht belegt ist.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Konvertieren mit CDbl

Beitrag von Stephan »

@Balu

Für wie wahrscheinlich hälst Du es eigentlich das Deine Antwort zutrifft, angesichst dessen das Du:

1. den Code verkürzt zitierst

Die "..." am Anfang und Ende haben nämlich eine, durchaus hinreichend verständliche, Bedeutung, dürften also mit sehr hoher WAhrscheinlichkeit auch das Vorhandensein eines Wertes für i umfassen


2. Du zu einem völlig falschen Fehler referierst

Der Frager bekommt keinen Laufzeitfehler, sondern schreibt deutlich das er lediglich ein Ergebnis ohne Nachkommastellen erhält


'Herzlichen Dank' in jedem Fall für zwei völlig überflüssige Smileys, besonders bewegte Smileys erhöhen ja die Lesbarkeit enorm ...



Gruß
Stephan
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Konvertieren mit CDbl

Beitrag von balu »

Hallo,

@Winfried
Danke.


@Stephan
zu 1.
Ah ja! War mir noch nicht bekannt.

zu 2.
Stimmt schon, hätt ich etwas anders formulieren können.

Ergänzend dazu gesagt.
Wenn i als Integer deklariert, dann werden ja die Nachkommastellen abgeschnitten. Eigentlich ehern nach Kaufmännischer Tradition auf ganze Zahl auf- bzw. abgerundet. Stimmt doch. Oder?
Also dachte ich mir, dass bei toni007 vielleicht die deklaration nicht stimmt, und deshalb bei ihm die Nachkommastellen abgeschnitten werden.
Stephan hat geschrieben: Für wie wahrscheinlich hälst Du es eigentlich das Deine Antwort zutrifft ...
50%. Entweder passt, oder passt nicht.



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
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Konvertieren mit CDbl

Beitrag von Stephan »

Wenn i als Integer deklariert, dann werden ja die Nachkommastellen abgeschnitten. Eigentlich ehern nach Kaufmännischer Tradition auf ganze Zahl auf- bzw. abgerundet. Stimmt doch. Oder?
Nein, da i wegen:

Code: Alles auswählen

oFrmTest.getControl("numBeitrag_" & i).Text
lediglich ein Namenzusatz im Namen eines Steuerelements ist.
Namen von Steuerelementen stehen jedoch in keinerlei Bezug zu ihrem Inhalt egal ob der Inhalt Zahlen, Texte oder sonstwas ist, somit können wegen eines Steuerelementnamens auch keine Nachkommastellen des Inhalts dieses Steuerelements abgeschnitten werden.




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

Re: Konvertieren mit CDbl

Beitrag von Stephan »

1. Warum ergibt

msgbox CDbl("12,34")

bei mir unter OOo 2.4.1 (LINUX) als Ergebnis 12 und nicht 12,34.
Handelt es sich um einen Bug?
Bin ich mir leider nicht darüber im Klaren, da aber in der Hilfe von der Abhängigkeit vom Zahlenformat des Systems gesprochen wird, fände ich es zu erfahren was bei Dir:

Code: Alles auswählen

msgbox CDbl("12.34")
als Ergebnis liefert.

2. Eigentlich möchte ich ja nur Zahlenwerte in einem Dialog in einer 'Text'-, 'Num'- oder wie auch immer- Box rechtsbündig anzeigen.
Gibt es da Alternativen?
Alternativen wären wohl das maskierte Feld, das Fix-Text-Feld, im Notfall aber auch Kombinations- oder Listenfeld.
Wobei ich noch nicht so ganz verstehe warum eine Anzeige in einem FEld das REchenproblem (zwangsläufig) lösen würde. Um das Rechenproblem direkt anzugehen, würde ich wegen meiner Unklarheit warum sich überhaupt das Problem mit CDbl ergibt, etwas wohl übertrieben 'Konservatives' versuchen im Sinne:

Code: Alles auswählen

x = "12,34"
x1 = Split(x, ",")
msgbox Val(x1(0) & "." & x1(1))



Gruß
Stephan
Karolus
********
Beiträge: 7521
Registriert: Mo, 02.01.2006 19:48

Re: Konvertieren mit CDbl

Beitrag von Karolus »

Hallo
zu 1.
Hier (OOo3.1 deutsche Lokalisierung , Suse 11.0) wird
msgbox CDbl("12,34") korrekt angezeigt, bei
msgbox CDbl("12.34") werden die Nachkommastellen abgeschnitten.

Verwendest du evtl. eine andere Lokalisierung bei OOo (oder auf Betriebssystemebene) ?

Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Konvertieren mit CDbl

Beitrag von Stephan »

Hier (OOo3.1 deutsche Lokalisierung , Suse 11.0) wird
msgbox CDbl("12,34") korrekt angezeigt, bei
msgbox CDbl("12.34") werden die Nachkommastellen abgeschnitten.
Danke, darauf hatte ich gehofft.

Vielleicht kann das Thomas bei sich auch bestätigen.


Gruß
Stephan
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Konvertieren mit CDbl

Beitrag von komma4 »

Karolus hat geschrieben:Hier (OOo3.1 deutsche Lokalisierung , Suse 11.0) wird
msgbox CDbl("12,34") korrekt angezeigt, bei
msgbox CDbl("12.34") werden die Nachkommastellen abgeschnitten.
Hier (3.0.1 dt., XP pro) bekomme ich bei

Code: Alles auswählen

msgbox CDbl("12.34") 
die Anzeige 1234, lasse ich die Anführungszeichen weg, ein korrektes 12,34
???
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Karolus
********
Beiträge: 7521
Registriert: Mo, 02.01.2006 19:48

Re: Konvertieren mit CDbl

Beitrag von Karolus »

Hallo Winfried
Und was passiert unter der Umgebung
Cheers Winfried
OOo 3.0.1 mit SuSE Linux
deiner Signatur?

Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Konvertieren mit CDbl

Beitrag von komma4 »

... muss ich "zu Hause" prüfen ... bin aktuell bei einem Kunden
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Konvertieren mit CDbl

Beitrag von balu »

Hallo,

wollt mich nur mal kurz bei Stephan bedanken, wegen der Erklärung i im Steuerelement.

Danke, Stephan.


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
Antworten