|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
marko11 Član
Pridružen-a: Ned 14 Dec 2003 17:47 Prispevkov: 866 Aktiv.: 3.89 Kraj: Dobrepolje
|
Objavljeno: Ned Apr 15, 2018 6:00 pm Naslov sporočila: VB6 izpis za decimalko |
|
|
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 |
|
|
igo Član
Pridružen-a: Sre 11 Okt 2006 19:11 Prispevkov: 3638 Aktiv.: 17.05
|
Objavljeno: Ned Apr 15, 2018 7:12 pm Naslov sporočila: |
|
|
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 _________________ Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor |
|
Nazaj na vrh |
|
|
blay44 Član
Pridružen-a: Ned 19 Dec 2010 18:17 Prispevkov: 603 Aktiv.: 3.72
|
Objavljeno: Ned Apr 15, 2018 8:55 pm Naslov sporočila: |
|
|
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 |
|
|
blay44 Član
Pridružen-a: Ned 19 Dec 2010 18:17 Prispevkov: 603 Aktiv.: 3.72
|
Objavljeno: Ned Apr 15, 2018 9:20 pm Naslov sporočila: |
|
|
Uh, površno sem prebral.
Druga pot je obdelava stringa. |
|
Nazaj na vrh |
|
|
Krampus Član
Pridružen-a: Pon 08 Sep 2008 13:07 Prispevkov: 1826 Aktiv.: 9.61
|
Objavljeno: Pon Apr 16, 2018 12:19 am Naslov sporočila: |
|
|
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 |
|
|
marko11 Član
Pridružen-a: Ned 14 Dec 2003 17:47 Prispevkov: 866 Aktiv.: 3.89 Kraj: Dobrepolje
|
Objavljeno: Sre Apr 18, 2018 5:32 pm Naslov sporočila: |
|
|
Krampus@
Dokler je a pozitiven je vredu, če pa je a= -123.987654, pa izpiše še predznak minus.
LP, |
|
Nazaj na vrh |
|
|
Krampus Član
Pridružen-a: Pon 08 Sep 2008 13:07 Prispevkov: 1826 Aktiv.: 9.61
|
Objavljeno: Sre Apr 18, 2018 8:27 pm Naslov sporočila: |
|
|
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 |
|
|
marko11 Član
Pridružen-a: Ned 14 Dec 2003 17:47 Prispevkov: 866 Aktiv.: 3.89 Kraj: Dobrepolje
|
Objavljeno: Ned Apr 22, 2018 12:58 pm Naslov sporočila: |
|
|
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 |
|
|
eddie Član
Pridružen-a: Sre 10 Dec 2003 21:02 Prispevkov: 706 Aktiv.: 3.17 Kraj: Severna primorska
|
Objavljeno: Ned Apr 22, 2018 1:43 pm Naslov sporočila: |
|
|
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 |
|
|
frenki Moderator
Pridružen-a: Ned 23 Feb 2003 21:26 Prispevkov: 6553 Aktiv.: 29.42 Kraj: Ljubljana (JN76GB)
|
Objavljeno: Ned Apr 22, 2018 2:22 pm Naslov sporočila: |
|
|
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 |
|
|
|
|
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: 69 dni
Powered by phpBB © 2001, 2005 phpBB Group
|