vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: BindingSource: Double.NaN filtern 
Autor: Preisser
Datum: 01.05.13 15:10

Hallo,

sorry, deinen Beitrag verstehe ich leider nicht so ganz.

Dass z.B. Double.NaN.Equals(Double.NaN) True ergibt, erwähnte ich deshalb, weil du schriebst, dass das Verhalten völlig überraschend sei, da ein Vergleich von zwei NaN-Werten False ergibt. Dies ist der Fall für einen Vergleich mit den arithmetischen Operatoren =, <, > usw.

Der "Standardcomparer" für Double (Comparer(Of Double).Default) benutzt die IComparable(Of Double).CompareTo-Methode, welche jedoch für Double so implementiert ist, dass sie zusätzlich auch NaN-Werte berücksichtigt und deshalb in diesem Fall 0 zurückgeben kann, bzw. dass Equals() True zurückgeben kann.

MSDN:
Zitat:

Note that, although an object whose value is NaN is not considered equal to another object whose value is NaN (even itself), the IComparable<T> interface requires that A.CompareTo(A) return zero.


Manfred X schrieb:
Zitat:

In diesen Beispielen werden keine numerischen Vergleiche
durchgeführt,
sondern es wird direkt über &quot;Double.Nan&quot; geprüft.
Das entspricht etwa der &quot;Double.IsNan&quot;-Methode.
Welches Beispiel genau meinst du damit? Und was heißt "über NaN prüfen"?
Edit: Meinst du damit den Stringvergleich im ersten Beitrag?

Zitat:

Die &quot;Bindingsource&quot;-Klasse parst numerische Werte
im Filterstring entsprechend
der Ausprägung als einen jeweils passenden Typ. Dabei wird
die Zeichenfolge
&quot;n. def.&quot; als Double.Nan erkannt.
Ok. (Eigenartig, dass dafür scheinbar die aktuelle Threadkultur verwendet wird und nicht die InvariantCulture.)
Zitat:

Zum Filtern von Double-Werten wird nicht der
Standardvergleich eingesetzt,
sondern ein Comparer, der die IEEE-Sonderwerte explizit
berücksichtigt.
Meinst du damit, dass du diesen Comparer angibst, oder er wird automatisch von der Bindungsource verwendet? (Sorry, hab noch nicht mit der BindungSource gearbeitet).

Zitat:

Reihenfolge beim Vergleich:
NaN
-unendlich
Double.Minvalue
gültige Werte
Double.Maxvalue
+unendlich
Ja, das ist die Reihenfolge, die beispielsweise von der Double.CompareTo-Methode verwendet wird.

Beitrag wurde zuletzt am 01.05.13 um 15:33:49 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
BindingSource: Double.NaN filtern1.826Manfred X29.04.13 17:18
Re: BindingSource: Double.NaN filtern1.304ModeratorDaveS30.04.13 12:16
Re: BindingSource: Double.NaN filtern1.507Manfred X30.04.13 20:37
Re: BindingSource: Double.NaN filtern1.301Preisser01.05.13 14:04
Re: BindingSource: Double.NaN filtern1.338Manfred X01.05.13 14:38
Re: BindingSource: Double.NaN filtern1.439Preisser01.05.13 15:10
Re: BindingSource: Double.NaN filtern1.313Manfred X01.05.13 16:52
Re: BindingSource: Double.NaN filtern1.418Preisser01.05.13 17:46
Re: BindingSource: Double.NaN filtern1.280Manfred X01.05.13 18:40

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel