Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   sql-round (https://www.delphipraxis.net/150243-sql-round.html)

mkinzler 11. Apr 2010 11:38

Re: sql-round
 
Schau mal im IbExpert unter UDF nach.

Was liefert
SQL-Code:
select bruttopreis/107 * 100 as brutto, Round(bruttopreis/107 * 100,3) as netto from artikelpreise;

khh 11. Apr 2010 11:43

Re: sql-round
 
Zitat:

Zitat von mkinzler
Schau mal im IbExpert unter UDF nach.

Was liefert
SQL-Code:
select bruttopreis/107 * 100 as brutto, Round(bruttopreis/107 * 100,3) as netto from artikelpreise;

das liefert in brutto und netto das Gleiche nämlich genauso 0,900 , also die falsche Rundung

UDF gibts nur get_context und set_context

mkinzler 11. Apr 2010 11:52

Re: sql-round
 
Dann liegt der Fehler ja nicht am Round sondern an der Berechnung, denn 0,900 ergibt auf 3 Nachkommastellen gerundet 0,900

khh 11. Apr 2010 12:05

Re: sql-round
 
Zitat:

Zitat von mkinzler
Dann liegt der Fehler ja nicht am Round sondern an der Berechnung, denn 0,900 ergibt auf 3 Nachkommastellen gerundet 0,900

ich glaube jetzt haben wir uns falsch verstanden :-(


ich rechne 1,000 / 107 * 100 = 09,345 von hand.

die Formel rechnet 1,000 / 107 * 100 = 09,000
SQL-Code:
update artikelpreise set NETTOPREIS = round((bruttopreis/107 * 100),5);
oder
update artikelpreise set NETTOPREIS = round((bruttopreis/107 * 100),3);
dabei hab ich grad gemerkt es ist egal ob 3 oder 5 oder sonst was als 2tes Argument in der Formel steht :-(

das Ergebmis ist das Gleiche

auch
SQL-Code:
select bruttopreis/107 * 100 as brutto, Round(bruttopreis/107 * 100,5) as netto from artikelpreise;
bringt das gleiche Ergebnis

mkinzler 11. Apr 2010 12:19

Re: sql-round
 
Zitat:

ich glaube jetzt haben wir uns falsch verstanden Sad
Nein, denn das Round wird wohl schon mit dem falschen Wert gefüttert.

Was ergibt
SQL-Code:
select bruttopreis/1.07 from artikelpreise;

khh 11. Apr 2010 12:24

Re: sql-round
 
Zitat:

Zitat von mkinzler
Was ergibt
SQL-Code:
select bruttopreis/1.07 from artikelpreise;

das ergibt den richtigen wert :-)

ist aber doch das Gleiche wie bruttopreis/107 * 100 ?

mkinzler 11. Apr 2010 12:29

Re: sql-round
 
Jein. Beim Berechnen scheint der kleinste kompatible Typ verwendet zu werden.

bei 1.0 / 107 ist das der Integer von 107
->
bruttopreis/107.0 * 100.0

khh 11. Apr 2010 12:44

Re: sql-round
 
Zitat:

Zitat von mkinzler
Jein. Beim Berechnen scheint der kleinste kompatible Typ verwendet zu werden.

bei 1.0 / 107 ist das der Integer von 107
->
bruttopreis/107.0 * 100.0

das ergibt dann 0,930 anstatt 09,345

naja ich machs jetz mit bruttopreis/1.07, dann passts


war jetzt wirklich ne schwere Geburt ;-)


ich danke euch.

Gruss KH


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:10 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz