',' u Float-u

',' u Float-u

offline
  • Pridružio: 13 Apr 2007
  • Poruke: 452
  • Gde živiš: Beograd

Imam problem...
Sa net-a 'skidam' neke float-e kao string...
Ali oni nemaju '.' nego ','...
Kako da u Delphi-u taj ',' prebacim u '.'
Probao sam sa copy da izvucem ',' a da postavim '.' ali Delphi na ',' i '.' gleda kao da nisu znakovi nego ih preskace...
Neznam sta da radim...
Znam da mogu da prebacim u windows-u na ',' ali program ce biti bolji ako korisnik ne mora da menja sistemska podesavanja zbog njega...



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Đuro Glumac
  • dipl. ing. informatike
  • Pridružio: 08 Feb 2004
  • Poruke: 3640
  • Gde živiš: ApAtIn

Na primer da imas cifru 123,55 i hoces da je prebacis u 123.55. Oba su tipa Float.
Dakle... x:=123,55

FloatToStr(x);  //Konvertuje broj u string k:=Length(x);   // odredjuje duzinu stringa [broj znakova] for i:=1 to k do   //proverava redom da jedan po jedan znak if x[i]=',' then x[i]:='.';//ukoliko je neki znak zarez, zamenjaje ga tackom

Ovo ti je resenje te ideje kako si ti zamislio to da uradis.
Samo pazi, Ameri zarez koriste za razdvajanje hiljada, pa tako ako imas broj 5,400.22 on ce ti konvertovati u 5.400.22 i opet problem...



offline
  • Strog  Male
  • Stručni saradnik
    Web programiranje
  • Bojan Kopanja
  • Web & Mobile developer @ ZeusSoftware
  • Pridružio: 26 Jul 2003
  • Poruke: 2597
  • Gde živiš: Stara Pazova

Evo ti brzog resenja bez ikakvih for petlji ( posto ti je broj vec kao string! )

http://www.delphibasics.co.uk/RTL.asp?Name=StringReplace

Znaci samo ti treba StringReplace funkcija iz unita SysUtils i to je to. Pogledaj na ovom sajtu koji su joj parametri.

Takodje povedi racuna o ovome sto ti je NuLL rekao posto ako vec imam "," kao decimalni zarez verovatno imam i "." kao separator hiljada tako da ce ti onda ova funkcija razbucati broj kako ne treba...

Ovo pokusaj da resis sa Pos() funkcijom recimo pa ako ti je "," na vise pozicija od 1 ne vrsi ovu konveriju ( ili nesto slicno ).

U sustini ti je najjednostavnije da pormenis rucno separator iz programa i da ne razmisljas o ovome uopste ( ne moras da cackas Windows vec mozes explicitno u programu da naglasis sta hoces da ti bude separator ) i da vrlo jednostavno resis problem!

Evo ti kako mozes da resis taj problem:

http://www.delphitricks.com/source-code/misc/set_d.....mwide.html

offline
  • Pridružio: 13 Apr 2007
  • Poruke: 452
  • Gde živiš: Beograd

Usepo sam...
NuLL Hvala puno...
Evo da objasnim...
Znaci sa neta sam skidao float ali kao string...Znaci k := '123,32'...
Onda je trebalo da ',' zamenim '.'
I NuLL je sve lepo objasnio...
Hvala puno...
Inace skidam sa nasih servera i brojevi se krecu do 120-130...Nema hiljada....

offline
  • Đuro Glumac
  • dipl. ing. informatike
  • Pridružio: 08 Feb 2004
  • Poruke: 3640
  • Gde živiš: ApAtIn

Nema na cemu... tu smo da pomognemo.
Inace, ako u Control Panelu, Regional Setting stavis Srpski prikaz valuta, brojeva itd u tvom programu ce se takodje desiti takva izmena, i tada ce ti broj biti prikazivan kao 2.543,55, odnosno onako kako tebi treba.

offline
  • Pridružio: 13 Apr 2007
  • Poruke: 452
  • Gde živiš: Beograd

Ok, nisam to znao...Znaci moglo je i tako...
Ali vazno je da radi...
Hvala jos jednom...

offline
  • srdjos  Male
  • Zaslužni građanin
  • Pridružio: 27 Sep 2005
  • Poruke: 678

ne moraš menjati ništa u control panelu
imaš u Delphiju, Sysutils, jednu globalnu promenjivu
koja se zove DecimalSeparator
samo ime ti govori o čemu se radi
i radiš preko nje

pazi, tu se radi sa matematičkim operacijama
sa pokretnim zarezima i greške su vidljive
u krajnjim zbirovima

srdjos

Ko je trenutno na forumu
 

Ukupno su 466 korisnika na forumu :: 16 registrovanih, 2 sakrivenih i 448 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: aleksandarbl, Bobrock1, Dejan84, dejoglina, dekan.m, Georgius, kybonacci, laki_bb, loon123, mcalic, MiloradKomadic, panzerwaffe, pirke96, shaja1, Vatrogasaccc, vladulns