13.09.2008, 17:20
Beitrag #1
|
Donald
LVF-Grünschnabel
Beiträge: 27
Registriert seit: Sep 2008
8.5/8.6
2008
de
10319
Deutschland
|
Wieder das liebe Runden
Moin,
warum zum Geier rundet LV manchmal auf bzw. ab. Ich benutze DBL als Fromat und 2 Kommastellen. Was ich hier im Forum schon gelesen habe, reicht mir irgentwie nicht. Kann man das nich irgentwie abstellen? Das nervt voll!!
Gruss
|
|
|
14.09.2008, 09:06
Beitrag #2
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Wieder das liebe Runden
Irrtum: LabVIEW rundet niemals, es sie dann, du benutzt eine Funktion dafür oder konvertierst eine Gleitkommazahl mit Kommastellen in eine Ganzzahl.
Unter den Anzeigeeigenschafte kann man die Anzahl der sichtbaren Kommastellen einstellen, wobei allerdings die Kommastellen nicht einfach abgeschnitten werden, sondern das was angezeigt wird ist gerundet. Aber intern bleibt in jedem Fall die volle Präzision erhalten.
Etwas anderes ist es, wenn Du eine Zahl in einen String mit z.B nur zwei Kommastellen konvertierst und dann wieder Rück-konvertiest. Dann geht die ursprünglichen Präzision der Zahl unwiderruflich verloren.
|
|
|
14.09.2008, 11:36
Beitrag #3
|
Donald
LVF-Grünschnabel
Beiträge: 27
Registriert seit: Sep 2008
8.5/8.6
2008
de
10319
Deutschland
|
Wieder das liebe Runden
Ja sowas dacht ich mir schon. Verstehn tue ich es aber nicht, denn ich benutze im ganzen Programm ausschliesslich double mit zwei Kommastellen.
Denn 0,18 + 0,18 sind immernoch 0,36 und nicht 0,35.
|
|
|
14.09.2008, 13:02
(Dieser Beitrag wurde zuletzt bearbeitet: 14.09.2008 13:05 von Lucki.)
Beitrag #4
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Wieder das liebe Runden
' schrieb:Denn 0,18 + 0,18 sind immernoch 0,36 und nicht 0,35.
Die Anzeige ist nicht gleich der Zahl, gerechnet wird immer mit der Zahl und nicht mit dem was in der Anzeige zu sehen ist. Der auf zwei Stellen gerundeten Anzeige 0,18 kann z.B die interne Zahl 0,176 zugrundeliegen. (Das siehst Du, wenn Du die Anzeigegegenauigkeit erhöhst). Und das verdoppeln gibt dann 0,352, in der zweistelligen Anzeige sieht man dann 0.35.
(Das passiert natürlich nur, wenn die 0.18 das Ergebnis einer Rechenoperation war. Wenn Du die 0.18 eigenhändig in das Bedienelement getippt hast, dann ist die Zahl auch intern 0.18 und verdoppelt ist es dann 0.36)
|
|
|
14.09.2008, 15:12
(Dieser Beitrag wurde zuletzt bearbeitet: 14.09.2008 15:13 von MikeS81.)
Beitrag #5
|
MikeS81
LVF-Gelegenheitsschreiber
Beiträge: 231
Registriert seit: Aug 2008
8.5
2005
de_en
81xxx
Deutschland
|
Wieder das liebe Runden
Hallo Donald,
schau dir mal die folgenden Links an:
Link 1 -> NI
Link2 -> Wikipedia
Link3 -> NI Forum
Vielleicht hilft das ja weiter.
Mike
|
|
|
24.09.2008, 14:24
Beitrag #6
|
Donald
LVF-Grünschnabel
Beiträge: 27
Registriert seit: Sep 2008
8.5/8.6
2008
de
10319
Deutschland
|
Wieder das liebe Runden
Danke!!
Ich habe mir jetzt geholfen, indem ich den Wert x 100 nehme, auf eine ganze Zahl runde und wieder durch 100 dividiere. Ist zwar nicht schön, aber erfüllt seinen Zweck. ^_^
|
|
|
24.09.2008, 15:26
(Dieser Beitrag wurde zuletzt bearbeitet: 24.09.2008 15:31 von Lucki.)
Beitrag #7
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Wieder das liebe Runden
' schrieb:Danke!!
Ich habe mir jetzt geholfen, indem ich den Wert x 100 nehme, auf eine ganze Zahl runde und wieder durch 100 dividiere. Ist zwar nicht schön, aber erfüllt seinen Zweck. ^_^
Das ist kein Behelf, sondern so macht mans beim Runden. Das hätten wir Dir auch so sagen können, wenn Du danach gefragt hättet. Ursprünglich wolltest Du aber lediglich eine Erklärung für merkwürdig erscheinende Anzeigeergebnisse.
Ein andere Methode ist die Umwandlung in einen Zahlenstring mit zwei Kommastellen und anschließende Rück-Konvertierung. Ist aber auch nicht schöner.
Und unschön ist es einfach deshalb, weil es sich nicht lohnt, dafür eine Funktion bereitzuhalten. Es ist in 99.99% aller Anwendungen das Beste, intern solange es geht immer mit der vollen Genauigkeit zu rechnen und nur das Endergebnis in der Anzeige auf eine überschaubare Anzahl von Stellen zu runden. Und das geht ja sehr elegant zu machen.
Es wäre interessant, mal Deine Begründung zu hören, warum Du das anders machen mußt als quasi der Rest der Welt.
Guß Ludwig
|
|
|
24.09.2008, 16:06
Beitrag #8
|
Donald
LVF-Grünschnabel
Beiträge: 27
Registriert seit: Sep 2008
8.5/8.6
2008
de
10319
Deutschland
|
Wieder das liebe Runden
Nee, wenn das der weg ist mit Runden, dann füge ich mich da schon ^_^.
Ich muss mich als Noob für die FH in LV einarbeiten. Habe eine Rechenschaltung gebastelt und wunderte mich warum manchmal richtige Ergebnisse raus kamen und manchmal nicht. Irgentwann habe ich gemerkt, dass LV schlicht "falsch" rechnet. Und das nur bei Werten die bereits aus einer Rechnung stammten. Ich habe mich darüber geärgert, weil ich den Fehler woanders gesucht habe. Obwohl er ja einfach zu lösen ist. ;-)
Aber nun weiss ich es!
Dank dem Super Forum.
|
|
|
| |