| Forum: VB.NET | 
																Thema: 
																	AW: AW: Rundungsfehler in VB.NET | 
																	Von: 
																		G. Guest (
																	25.08.2007 20:01) | 
													
												
            
		Hi,
stimmt - das Problem liegt woanders ;o)
Bei der mathematischen Rundung (und auch bei der kaufmännischen) müsste er ja eigentlich auf 1.28 kommen - tut er aber nicht :o(
Dim Wert as double
Wert=1.275
math.round(Wert,2,MidPointRounding.AwayFromZero) 
ergibt 1.27
math.round(cdec(Wert),2,MidPointRounding.AwayFromZero) 
ergibt jedoch das korrekte Ergebnis 1.28
Ich bin mir nur nicht sicher, dass ich nicht irgend etwas übersehen habe - ich kann mir eigentlich nicht vorstellen, dass ich alle Double-Variablen zu Decimals machen muß, damit mein Programm rundungssicher ist :o(
Viele Grüße
Schoe
	
	
													
												
            
														
		
			| 
																	
																		| Betreff | Von | Datum |  
			|  |  
									| 
											
												|   | AW: AW: AW: Rundungsfehler in VB.NET 
														
															
																| Hallo,<br><br>das ist echt nicht lustig. Irgendwas is da richtig faul an der Funktion. Hier mal ein paar Tests:<br><br>Decimal-Wert gerundet auf 2 Stellen. Das Ergebnis ist für ToEven nicht korrekt, wenn ich... |  |  
																|  |  |  |  | Thomas
											Hauser | 26.08.2007 11:59 |  
			|  |  
									| 
											
												|   | AW: AW: AW: AW: Rundungsfehler in VB.NET 
														
															
																| Vermutung: double speichert werte als flieskommazahl (float) ... damit wär beim Runden 1.275 intern als 1.27499..... <br>Dadurch dürfte beim "Abschneiden" Probleme entstehen :D<br><br>Seltsam auf jeden Fall... |  |  
																|  |  |  |  | Bernhard
											Grojer | 26.08.2007 13:48 |  
			|  |  
									| 
											
												|   | AW: AW: AW: AW: Rundungsfehler in VB.NET 
														
															
																| Hallo Thomas,<br><br>und ich dachte schon, ich stehe völlig im Wald ;o)<br><br>Dann wird mir wohl auch nichts anderes übrig bleiben, als meine eigenen Rundungsroutinen zu schreiben - alles andere ist mir dann... |  |  
																|  |  |  |  |  | 26.08.2007 14:21 |  
			|  |  
									| 
											
												|   | AW: AW: AW: AW: AW: Rundungsfehler in VB.NET 
														
															
																| Hallo,<br><br>jetzt habe ich eine akzeptable Lösung. Das wäre dann toString Methode von double oder decimal.<br>Formatstring: "Fd", wobei d die Anzahl der Nachkommastellen ist.<br><br>Hier ein paar Tests, die... |  |  
																|  |  |  |  | Thomas
											Hauser | 26.08.2007 14:53 |  
			|  |  | 
	
							Antworten
							
							
							Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!