Kropka, przecinek - nerwosol się kończy :)

0

Słuchajcie,

mam taka funkcję zapisu do drukarki fiskalnej:

function ReceiptItem (const Name: WideString; const TaxRate: WideString; Price: Currency; Qtty: Double; const QttyUnit: WideString; ItemValue: Currency): WordBool

gdzie:
  Name: nazwa towaru (string)
  TaxRate: stawka podatku VAT w formacie litery A,B,C,D,E,F,G (string)
  Price: cena (double z kropką oddzielającą część dziesiętną)
  Qtty: ilość (double z kropką oddzielającą część dziesiętną)
  QttyUnit: jednostka miary (string)
  ItemValue: suma (double z kropką oddzielającą część dziesiętną)

w bazie danych zapis mam zgodnie z ustawieniami lokalnymi Windows czyli oddzieleniem części dziesiętnej jest przecinek.
Jednak funkcja wymaga aby wysyłać dane liczbowe z separatorem dziesiętnym w postaci kropki, oto przykład:

ReceiptItem('Jakiś towar', 'A', 1.50, 2.5, 'jm', 3.75);

No i teraz pytanie, jak przekonwerterować przecinek na kropkę abym mógł zapisać dane do drukarki?
Nie może to być zwykła zamiana znaku poprzez StringReplace ponieważ dane muszą być w formacie double a nie string, nie mogę też na stałe zamienić znaku w lokalizacjach bo jest to co najmniej nieeleganckie.

Jakieś pomysły?

Pozdrawiam
Robert

0

Trololo, ale jeżeli to na pewno nie ma być string to przecież nie ma to żadnego znaczenia. Tego separatora w zapisie binarnym liczby zmiennoprzecinkowej w ogóle nie ma.

0

Może DecimalSeparator pomoże.

0
Rev napisał(a)

Trololo, ale jeżeli to na pewno nie ma być string to przecież nie ma to żadnego znaczenia. Tego separatora w zapisie binarnym liczby zmiennoprzecinkowej w ogóle nie ma.

Miałeś rację, po prostu zapomniałem otworzyć port przed próbą wydruku (na teście otwierałem).
Moim wytłumaczeniem może być to że kod zaczyna być naprawdę zawiły a ja siedzę już nad nim ponad 10 godzin non stop.

Dzięki za sugestie. Działa.

0
JankoMuzykant napisał(a)

Może DecimalSeparator pomoże.

Także dzięki za sugestie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1