www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

VB6 izpis za decimalko

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Programska oprema
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
marko11
Član
Član



Pridružen-a: Ned 14 Dec 2003 17:47
Prispevkov: 866
Aktiv.: 3.90
Kraj: Dobrepolje

PrispevekObjavljeno: Ned Apr 15, 2018 6:00 pm    Naslov sporočila:  VB6 izpis za decimalko Odgovori s citatom

Hi

Imam Visual basic 6 in bi rad, da mi izpiše prva 4 števila za decimalko.

primer:
3210,1234567890 izpis naj bo 1234

0,98765 izpis naj bo 9876

Kako to dosežem?

LP,marko
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
igo
Član
Član



Pridružen-a: Sre 11 Okt 2006 19:11
Prispevkov: 3638
Aktiv.: 17.11

PrispevekObjavljeno: Ned Apr 15, 2018 7:12 pm    Naslov sporočila:   Odgovori s citatom

Od števila odštej samo celi del, pomnoži z 10000 in spet vzemi samo celi del.

Ne poznam VB sintakse za filtriranje celega dela. Če ne gre v enem koraku, naredi v dveh in naj se potem prevajalnik ukvarja z optimizacijo.

Zanimivo bi bilo videti, kakšen ostanek pri deljenju z 1 vrne (Stevilo % 1), če je Stevilo tipa float Pray

_________________
Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
blay44
Član
Član



Pridružen-a: Ned 19 Dec 2010 18:17
Prispevkov: 603
Aktiv.: 3.73

PrispevekObjavljeno: Ned Apr 15, 2018 8:55 pm    Naslov sporočila:   Odgovori s citatom

Tole kar razlaga Igo pride prav pri pisanju programov, ki jih moramo prevajati v več različnih jezikov.
Drugače pa ima vb6 vgrajeno funkcijo Round. Pa tud podobno vb.net.

enoStevilo = Round(krDrugoStevilo, steviloDecimalk)

Zadnjo decimalko zaokroži.

LP
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
blay44
Član
Član



Pridružen-a: Ned 19 Dec 2010 18:17
Prispevkov: 603
Aktiv.: 3.73

PrispevekObjavljeno: Ned Apr 15, 2018 9:20 pm    Naslov sporočila:   Odgovori s citatom

Uh, površno sem prebral. d'oh!
Druga pot je obdelava stringa.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Krampus
Član
Član



Pridružen-a: Pon 08 Sep 2008 13:07
Prispevkov: 1826
Aktiv.: 9.64

PrispevekObjavljeno: Pon Apr 16, 2018 12:19 am    Naslov sporočila:   Odgovori s citatom

Koda:
        Dim aaa As Decimal
        aaa = 12345.1234

        MsgBox(CLng((aaa - CLng(aaa)) * 10000))

_________________
Nisem ravno najbolj pameten na svetu, tu in tam pa imam kakšno idejo.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
marko11
Član
Član



Pridružen-a: Ned 14 Dec 2003 17:47
Prispevkov: 866
Aktiv.: 3.90
Kraj: Dobrepolje

PrispevekObjavljeno: Sre Apr 18, 2018 5:32 pm    Naslov sporočila:   Odgovori s citatom

Krampus@

Dokler je a pozitiven je vredu, če pa je a= -123.987654, pa izpiše še predznak minus.

LP,
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Krampus
Član
Član



Pridružen-a: Pon 08 Sep 2008 13:07
Prispevkov: 1826
Aktiv.: 9.64

PrispevekObjavljeno: Sre Apr 18, 2018 8:27 pm    Naslov sporočila:   Odgovori s citatom

Krampus je napisal/a:
Koda:
        Dim aaa As Decimal
        aaa = 12345.1234

        MsgBox(Abs(CLng((aaa - CLng(aaa)) * 10000)))

_________________
Nisem ravno najbolj pameten na svetu, tu in tam pa imam kakšno idejo.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
marko11
Član
Član



Pridružen-a: Ned 14 Dec 2003 17:47
Prispevkov: 866
Aktiv.: 3.90
Kraj: Dobrepolje

PrispevekObjavljeno: Ned Apr 22, 2018 12:58 pm    Naslov sporočila:   Odgovori s citatom

Hi

Računi se ne izidejo če je:

aaa= 8,51851919533492

Rezultat pa je: 4815

Račun pa je pravilen če je aaa= 8,11851919533492, rezultat je pravilen: 1185

Če je prvo število za decimalko 1-4 je rezultat pravilen, če pa je višje od 4 pa rezultat ni pravilen.

Torej ta formula ni zanesljiva.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
eddie
Član
Član



Pridružen-a: Sre 10 Dec 2003 21:02
Prispevkov: 706
Aktiv.: 3.18
Kraj: Severna primorska

PrispevekObjavljeno: Ned Apr 22, 2018 1:43 pm    Naslov sporočila:   Odgovori s citatom

Rešitev s stringi:
Koda:
r = 8.51851919533492
s = Str(r) 'Pretvorba v string
vejica = InStr(1, s, ".") 'poiščemo decimalno vejico(piko)
decimalke = Mid(s, vejica + 1, 4) 'In iz stringa vzamemo 4 znake za vejico


V spremenljivki decimalke je rezultat...
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
frenki
Moderator
Moderator



Pridružen-a: Ned 23 Feb 2003 21:26
Prispevkov: 6540
Aktiv.: 29.45
Kraj: Ljubljana (JN76GB)

PrispevekObjavljeno: Ned Apr 22, 2018 2:22 pm    Naslov sporočila:   Odgovori s citatom

A takole ne bi šlo?
Koda:
INT((ABS(3210,123456789)-INT(ABS(3210,123456789)))*10000)

INT((ABS(8,51851919533492)-INT(ABS(8,51851919533492)))*10000)
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo Obišči avtorjevo spletno stran
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Programska oprema Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 47 dni


Powered by phpBB © 2001, 2005 phpBB Group