Forum » Programiranje » [vb] Branje formata števil
[vb] Branje formata števil
zupancicff ::
Imam problemček.
Rad bi prebral format zapisane številke (npr "#0.0##") in potem format te številke spremenil tako, da bi mu dodal še eno decimalno mesto.
Primer:
v textboxu1 imam številko 5,1 (eno decimalno mesto)
v textboxu2 pa bi sedaj rad zapis števila 122,5863 glede na številko v texboxtu1 videl v obliki 122,59 (dve decimalni mesti).
A mi lahko kdo pomaga?
Hvala
Rad bi prebral format zapisane številke (npr "#0.0##") in potem format te številke spremenil tako, da bi mu dodal še eno decimalno mesto.
Primer:
v textboxu1 imam številko 5,1 (eno decimalno mesto)
v textboxu2 pa bi sedaj rad zapis števila 122,5863 glede na številko v texboxtu1 videl v obliki 122,59 (dve decimalni mesti).
A mi lahko kdo pomaga?
Hvala
zupancicff ::
Hvala lepa za odgovor.
Ker se število decimalnih mest v mojem primeru spreminja, rabim tudi vsakokrat šteti število decimalnih mest v številu.
A je tudi kaka enostavna funkcija za štetje znakov za decimalno vejico v decimalnem številu.
Sam poznam le ta način, da poiščeš položaj decimalke v stringu in nato izračunaš razliko med dolžino stringa in mestom vejice. Pa se mi zdi, da je to preveč komplicirano.
Hvala za odgovor
Ker se število decimalnih mest v mojem primeru spreminja, rabim tudi vsakokrat šteti število decimalnih mest v številu.
A je tudi kaka enostavna funkcija za štetje znakov za decimalno vejico v decimalnem številu.
Sam poznam le ta način, da poiščeš položaj decimalke v stringu in nato izračunaš razliko med dolžino stringa in mestom vejice. Pa se mi zdi, da je to preveč komplicirano.
Hvala za odgovor
Zgodovina sprememb…
- spremenil: zupancicff ()
zupancicff ::
Zadeva je s področja meroslovja, kjer računamo merilno negotovost, ki jo podajamo v obliki, ki je odvisna od ločljivosti (števila decimalk) merilne skale.
Tugo ::
1.) spremeniš številko v string
String1=Cstr(tvoje število)
2.) preveriš, če je v stringu vejica ( če je ni, ni decimalnih mest)
if InStr(String1, ",")
' * manjkajoči stavek 1
' * manjkajoči stavek 2
end if
3.) razdeliš string v polje dveh vrednosti
' * manjkajoči stavek 1
Pieces=Split(String1,",")
4.) dolžina polja 1, je število mest za decimalno vejico in ga recimo zapišeš v text1.text
' * manjkajoči stavek 2
Text1.text=len(Pieces(1))
Ker sem tole govoril iz glave, je možnost napake!!!
lp, T.
String1=Cstr(tvoje število)
2.) preveriš, če je v stringu vejica ( če je ni, ni decimalnih mest)
if InStr(String1, ",")
' * manjkajoči stavek 1
' * manjkajoči stavek 2
end if
3.) razdeliš string v polje dveh vrednosti
' * manjkajoči stavek 1
Pieces=Split(String1,",")
4.) dolžina polja 1, je število mest za decimalno vejico in ga recimo zapišeš v text1.text
' * manjkajoči stavek 2
Text1.text=len(Pieces(1))
Ker sem tole govoril iz glave, je možnost napake!!!
lp, T.
zupancicff ::
Lepa hvala za odgovor.
zadevo sem spravil v kup takole:
V text1 vpišem število, v textu2 pa se mi izpiše število decimalnih mest.
Private Sub Command1_Click()
String1 = CStr(Text1.Text)
If InStr(String1, ",") Then
Text2.Text = Len(String1) - InStr(String1, ",")
Else
'če ne najde vejice
Text2.Text = 0
End If
End Sub
Mogoče pride prav še komu.
LP, F
zadevo sem spravil v kup takole:
V text1 vpišem število, v textu2 pa se mi izpiše število decimalnih mest.
Private Sub Command1_Click()
String1 = CStr(Text1.Text)
If InStr(String1, ",") Then
Text2.Text = Len(String1) - InStr(String1, ",")
Else
'če ne najde vejice
Text2.Text = 0
End If
End Sub
Mogoče pride prav še komu.
LP, F
Tugo ::
Ta koda je napačna!
Tole je napačno:
Text2.Text = Len(String1) - InStr(String1, ",")
Poglej primer:
v textovnem oknu imaš število:
1234,567
Len(String1) boš dobil 8!!!
InStr pa prešteje vse vejice v stringu, kar pomeni 1!!!
Razlika je 7!!!
Če že hočeš nekaj takega, boš vseeno rabil ukaz Split, ki bo razdelil string na 2 dela... Celoštevilski del in ostanek.
Če se držim tega, da bereš iz text1.text, potem bi bila moja prejšna koda sledeča:
Private Sub Command1_Click()
String1=Cstr(text1.text)
if InStr(String1, ",") then
Pieces=Split(String1,",")
Text2.text=len(Pieces(1))
else
text2.text="0"
end if
end sub
Poglej kje si naredil napako!
lp, T.
EDIT: Pozabil sem še to, da so števila ločena s piko, tako da namesto vejice uporabi piko, ali pa pustiš tako kot imaš. Po želji.
Tole je napačno:
Text2.Text = Len(String1) - InStr(String1, ",")
Poglej primer:
v textovnem oknu imaš število:
1234,567
Len(String1) boš dobil 8!!!
InStr pa prešteje vse vejice v stringu, kar pomeni 1!!!
Razlika je 7!!!
Če že hočeš nekaj takega, boš vseeno rabil ukaz Split, ki bo razdelil string na 2 dela... Celoštevilski del in ostanek.
Če se držim tega, da bereš iz text1.text, potem bi bila moja prejšna koda sledeča:
Private Sub Command1_Click()
String1=Cstr(text1.text)
if InStr(String1, ",") then
Pieces=Split(String1,",")
Text2.text=len(Pieces(1))
else
text2.text="0"
end if
end sub
Poglej kje si naredil napako!
lp, T.
EDIT: Pozabil sem še to, da so števila ločena s piko, tako da namesto vejice uporabi piko, ali pa pustiš tako kot imaš. Po želji.
Zgodovina sprememb…
- spremenil: Tugo ()
darkolord ::
InStr pa prešteje vse vejice v stringu, kar pomeni 1!!!
Ne. InStr pove pozicijo vejice v stringu (5)
Ne. InStr pove pozicijo vejice v stringu (5)
Tugo ::
ej, se vsem oproščam...
zupancicff ima prav! sem zamutil!
sorry še enkrat!
lp, T.
P.S.: Hvala za popravek!
zupancicff ima prav! sem zamutil!
sorry še enkrat!
lp, T.
P.S.: Hvala za popravek!
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [C#] Prosim pomagajte! Potrebujem program, ki bi pobiral podatke iz ene straniOddelek: Programiranje | 2734 (2344) | David1994 |
» | [VB] Komunikacija s serijskimi napravamiOddelek: Programiranje | 2295 (1569) | mNeRo |
» | VB in StringOddelek: Programiranje | 900 (838) | mov ax 0x7c0 |
» | Visual Basic HELPOddelek: Programiranje | 1169 (1041) | GaPe |
» | API+VBOddelek: Programiranje | 2083 (1787) | webblod |