Domino 9 und frühere Versionen > ND8: Entwicklung
LS: Keine führende oder abschließende Null bei Kommazahlen
Peter Klett:
Und wie schreibst Du den ermittelten Wert in das Dokument zurück, also an die Stelle, an der es falsch angezeigt wird?
Obrac:
Mit "Call uidoc.FieldSetText" und dann "Cstr(Variable)". Wenn ich den Wert als Currency oder String im Sciptverlauf durch "print" ausgeben lasse, ist er aber auch schon falsch.
Peter Klett:
Natürlich ist sie beim Print "falsch", denn da ist sie ja nicht formatiert. Die Formatierung erfolgt ja durch das Feld selbst. Du solltest den Wert nicht als Text hineinschreiben, sondern als Zahl. Das geht nicht mit uidoc.FieldSetText.
Dim doc As NotesDocument
Set doc = uidoc.Document
doc.DeinFeld = IngGesamt
0xse:
Oder NotesDocument.ReplaceItemValue(). Versuch vorzugsweise den Datentyp Currency konsequent beim Arbeiten mit deinen Zahlen zu verwenden, alles andere kann zu Ungenauigkeiten führen.
Float und Double sind Gleitkommazahlen mit Basis und Exponent, ab einer gewissen Größe werden die ungenau und dafür wurde Currency erschaffen. Der speichert jede einzelne Stelle in BCD weg. Das braucht mehr Speicher, aber ist halt wirklich exakt.
Es ist nie gut wenn ein Buchhalter kommt und fragt wo ein Cent verschwunden ist, solche Suchaktionen machen keinen Spass =)
Obrac:
Hmm, das Ganze findet aber dann nur noch im Backend statt, oder? Eine Ausführung im Frontend ist allerdings unerlässlich.
--- Zitat ---Natürlich ist sie beim Print "falsch", denn da ist sie ja nicht formatiert. Die Formatierung erfolgt ja durch das Feld selbst. Du solltest den Wert nicht als Text hineinschreiben, sondern als Zahl. Das geht nicht mit uidoc.FieldSetText.
--- Ende Zitat ---
Aber warum klappt es dann hier: strBody1=strBody1+strBez+": "+strgesamt+" Euro"+Chr(10)
Hier wird die Zahl als Text ins selbe Feld geschrieben, und die Zahl wird korrekt ausgegeben.
@Oxse: Ja, als Currency war das Ganze ja auch vorgesehen.
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln