Stellen anzeigen ohne Rundung
-
- Beiträge: 49
- Registriert: 11.01.2010 01:22
Stellen anzeigen ohne Rundung
Hallo zusammen,
Hab gerade mal wieder etwas Zeit.....
und weiß wieder mal nicht weiter.
Wie bekomme ich es hin das wirklich nur 6Stellen angezeigt werden ohne das aufgerundet wird?
a17.d = 0.12345678
SetGadgetText(#STRING_INPUT_4,StrD(a17,6))
Danke schon mal
Gruß
Kallewirsch
Hab gerade mal wieder etwas Zeit.....
und weiß wieder mal nicht weiter.
Wie bekomme ich es hin das wirklich nur 6Stellen angezeigt werden ohne das aufgerundet wird?
a17.d = 0.12345678
SetGadgetText(#STRING_INPUT_4,StrD(a17,6))
Danke schon mal
Gruß
Kallewirsch
PureBasic 5.00 (Windows - x86)
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Stellen anzeigen ohne Rundung
Code: Alles auswählen
Define a17.d = 0.12345678
Define txt.s = StrD(a17)
txt = StringField(txt, 1, ".") + "." + Left(StringField(txt, 2, "."), 6)
SetGadgetText(#STRING_INPUT_4, txt)
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Stellen anzeigen ohne Rundung
Code: Alles auswählen
a.d = 0.1234567
Debug StrD(a , 6)
Debug StrD(a - 0.0000005, 6)
-
- Beiträge: 49
- Registriert: 11.01.2010 01:22
Re: Stellen anzeigen ohne Rundung
Hallo ts und josh
@ts
funktioniert bestens.....aber wie kann ich nun das Ergebnis für weitere berechnungen nehmen z.B. 100 - Ergebnis....(stehe wieder auf der Leitung)
@Josh
funktioniert auch... solange die Zahlen die richtigen sind.
Gruß
Kallewirsch
@ts
funktioniert bestens.....aber wie kann ich nun das Ergebnis für weitere berechnungen nehmen z.B. 100 - Ergebnis....(stehe wieder auf der Leitung)
@Josh
funktioniert auch... solange die Zahlen die richtigen sind.
Gruß
Kallewirsch
Code: Alles auswählen
a.d = 325 / 1100000
;Debug StrD(a )
Debug StrD(a - 0.0000005, 6)
b.d = 100 - a
;Debug StrD(b )
Debug StrD(b + 0.0000005, 6)
a.d = 325 / 1000000
;Debug StrD(a )
Debug StrD(a - 0.0000005, 6)
b.d = 100 - a
;Debug StrD(b )
Debug StrD(b + 0.0000005, 6)
PureBasic 5.00 (Windows - x86)
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Stellen anzeigen ohne Rundung
Kallewirsch hat geschrieben: @ts
funktioniert bestens.....aber wie kann ich nun das Ergebnis für weitere berechnungen nehmen z.B. 100 - Ergebnis....(stehe wieder auf der Leitung)
Code: Alles auswählen
Define a17.d = 0.12345678
Define txt.s = StrD(a17)
txt = StringField(txt, 1, ".") + "." + Left(StringField(txt, 2, "."), 6)
Debug txt
Define tmp.d = ValD(txt)
Debug tmp
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Stellen anzeigen ohne Rundung
was hat denn bei den zweiten Teilen das + 0.0000005 zu suchen ?
Es muss immer -0.0000005 damit er immer abschneitet und eben nicht rundet !
UN wenn du immer abschneitest, egal wie groß die zahl war, wirst du immer Fehler behalten
Was also soll dein Beispiel zeigen ?
Es muss immer -0.0000005 damit er immer abschneitet und eben nicht rundet !
UN wenn du immer abschneitest, egal wie groß die zahl war, wirst du immer Fehler behalten
Was also soll dein Beispiel zeigen ?
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
-
- Beiträge: 49
- Registriert: 11.01.2010 01:22
Re: Stellen anzeigen ohne Rundung
Hi ts und Stargate,
@Stargate
das mit den Fehlern ist mir klar.
ich möchte einfach eine berechnete Zahl z.B. 0,134237778 nur 6stellig anzeigen OHNE das aufgerundet wird>>>nämlich so 0,134237.
und nicht so:
@ts
Danke.....für die Hilfe.......jetzt krieg ich das hin
Gruß
Kallewirsch
@Stargate
das mit den Fehlern ist mir klar.
ich möchte einfach eine berechnete Zahl z.B. 0,134237778 nur 6stellig anzeigen OHNE das aufgerundet wird>>>nämlich so 0,134237.
und nicht so:
Code: Alles auswählen
a.d = 100 / 1475783
Debug StrD(a )
Debug StrD(a ,6)
b.d = 100 - a
Debug StrD(b )
Debug StrD(b ,6)
@ts
Danke.....für die Hilfe.......jetzt krieg ich das hin
Gruß
Kallewirsch
PureBasic 5.00 (Windows - x86)
Re: Stellen anzeigen ohne Rundung
Jo und das geht "einfacher" wenn du das Runden von StrD manipulierst:
Hier n Proceduer dafür, die auch mit negativen Zahlen arbeitet:
Hier n Proceduer dafür, die auch mit negativen Zahlen arbeitet:
Code: Alles auswählen
Procedure.s Cut(Value.d, Position.i)
If Value < 0
ProcedureReturn StrD(Value+Pow(10,-Position)*0.5, Position)
Else
ProcedureReturn StrD(Value-Pow(10,-Position)*0.5, Position)
EndIf
EndProcedure
a.d = 100 / 1475783
Debug StrD(a )
Debug StrD(a, 6)
Debug Cut (a, 6)
b.d = 100 - a
Debug StrD(b )
Debug StrD(b, 6)
Debug Cut (b, 6)
c.d = -a
Debug StrD(c )
Debug StrD(c, 6)
Debug Cut (c, 6)
d.d = -100+a
Debug StrD(d )
Debug StrD(d, 6)
Debug Cut (d, 6)
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
-
- Beiträge: 49
- Registriert: 11.01.2010 01:22
Re: Stellen anzeigen ohne Rundung
Hallo,
danke für eure Beispiele........aber ich kriegs nicht gebacken.
seht euch bitte mal den Code unten an
warum kommt denn da so ne Zahl heraus?????
Gruß
Kallewirsch
danke für eure Beispiele........aber ich kriegs nicht gebacken.
seht euch bitte mal den Code unten an
warum kommt denn da so ne Zahl heraus?????
Gruß
Kallewirsch
Code: Alles auswählen
Define a17.d = 0.144683632785
Define txt.s = StrD(a17)
txt = StringField(txt, 1, ".") + "." + Left(StringField(txt, 2, "."), 6)
Debug txt
;noch ist alles ok.
Define tmp.d = 100 - ValD(txt)
Debug tmp
;warum kommt nun als Ergebnis 99.85531699999.....und nicht 99.855317 ?????
PureBasic 5.00 (Windows - x86)
Re: Stellen anzeigen ohne Rundung
weil es eben keine unendliche genauigkeit gibtKallewirsch hat geschrieben:warum kommt denn da so ne Zahl heraus?????