![]() |
Datenbank: Firebird • Version: 2.13 • Zugriff über: IBDac
Umwandlung Float in Varchar
Hi,
ich muss einen Float - Wert in seine Besatndteile zerlegen. Dafür habe ich mir eine SP geschrieben. Leider ist das Verhalten bezüglich der Umwandlung in Firebird unterschiedlich. Der Test mit folgendem Statement liefert das gewünschte Ergebnis:
SQL-Code:
Ergebnis: 010077
select lpad(trunc(10077.34), 6, '0') from rdb$database
Das gleiche aus der SP:
SQL-Code:
liefert dann aber:
create procedure TRUS_ARTIKELNUMMER (
WERT type of WAEHRUNG) returns ( NUMMER type of VARCHAR6, ZUSATZ type of VARCHAR2) as begin nummer = lpad(trunc(:wert), 6, '0'); zusatz = lpad(trunc((:wert - trunc(:wert)) * 100), 2, '0'); suspend; end 10077. Wie wandelt man Integer in Varchar ohne den Tausender - Punkt. Frank |
Re: Umwandlung Float in Varchar
hi,
in mysql funzt folgendes: Format(wert,anzahl nachkommastellen) -> ergebnis als string Bsp: Format(210.40,0) = 210 Vllt. kannst du eine ähnliche Funktion in FB benutzen . Soulies |
Re: Umwandlung Float in Varchar
Hi,
Format gibt es in Firebird nicht. Wenn ich aber das Statement auflöse und den Umweg über eine Variable mache, dnn geht es:
SQL-Code:
Und der Punkt ist auch der Dezimalpunkt...
create procedure TRUS_ARTIKELNUMMER (
WERT type of WAEHRUNG) returns ( NUMMER type of VARCHAR6, ZUSATZ type of VARCHAR2) as declare variable TEMP INTEGER$; begin temp = trunc(:wert); nummer = lpad(:temp, 6, '0'); zusatz = lpad(trunc((:wert - trunc(:wert)) * 100), 2, '0'); suspend; end Ist zwar verwirrend, aber funktioniert so. Danke Frank |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:27 Uhr. |
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