Desetinné na celé číslo – Visual Basic – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Desetinné na celé číslo – Visual Basic – Fórum – Programujte.comDesetinné na celé číslo – Visual Basic – Fórum – Programujte.com

 

Kolotoc
~ Anonymní uživatel
17 příspěvků
8. 6. 2009   #1
-
0
-

zdravim. mam zase jeden problem. dejme tomu, že mám nějake desetinné číslo a potřebuju ho rozdělit na 2 (jedno je to před a druhe za desetinnou čarkou) - v podstatě souřadnice, který potřebuju rozdělit na X a Y
na X (před des. čarkou) sem si vytvořil f-ci trunc(sem na ňu zvyklej z pascalu a nevim jestli je něco takovyho i ve VB). nemam tu momentalně ty zdrojaky ale vypada nějak takto

function trunc(x as double)

function=0
while x>=1 then
x=x-1
trunc=trunc+1
wend
end function


takže
x=trunc(cislo)

y=cislo - x

tak sem dostal desetinny Y (ale to někdy VB vypisoval nesmyslně, misto aby ho dal 0,2 (z čisla třeba 3,2) ho dal jako 0,1999999,což sem vyřešil přičtenim 0,1 a zaokrouhlenim dolu)

a jak z tohodle vytvořit cely čislo? kdyby to byly jen desetiny, tak to vynasobim 10x, ale to mužou byt setiny, tisiciny...

Nahlásit jako SPAM
IP: 89.102.3.–
Kolotoc
~ Anonymní uživatel
17 příspěvků
8. 6. 2009   #2
-
0
-

pardon, v kodu te f-ce samozřejmě ma byt

trunc=0

Nahlásit jako SPAM
IP: 89.102.3.–
Kolotoc
~ Anonymní uživatel
17 příspěvků
8. 6. 2009   #3
-
0
-

ha, tak se mi to asi povedlo vyřešit, použil sem tam funkci len(y) do for cyklu a tolikrát sem to čislo vynasobil 10x, testovat to bud až v patek, snad to nezapomenu :D..

Nahlásit jako SPAM
IP: 89.102.3.–
z_moravec
~ Redaktor
+3
Posthunter
8. 6. 2009   #4
-
0
-

To desetinné číslo získáš díky nepřesnosti matematických operací. IMHO je jednodušší to původní číslo převést na řetězec a ten rozdělit na dva (rozseknout to v místě desetinné čárky) a zpět to převést na integer.

Nahlásit jako SPAM
IP: 83.240.110.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
Kolotoc
~ Anonymní uživatel
17 příspěvků
9. 6. 2009   #5
-
0
-

ajo, taky možnost, diky :)

Nahlásit jako SPAM
IP: 89.102.3.–
Kolotoc
~ Anonymní uživatel
17 příspěvků
9. 6. 2009   #6
-
0
-

jo a ještě, to rozkouskovávání na 2 menši řetězce (před a za čarkou), jak přesně by se to dalo udělat? jelikož to, jak sem to touhle metodou zkoušel já, mi přijde zdlouhavějši než pomoci tohodle:

y = cislo

a = trunc(y)
b = cislo - a
For i = 3 To Len(b)
b = b * 10
Next i

Nahlásit jako SPAM
IP: 89.102.3.–
kolotoc
~ Anonymní uživatel
17 příspěvků
10. 6. 2009   #7
-
0
-

vysledek by měl vypadat takhle?

x = InStr(1, cislos, ",")

For i = 1 To x - 1
cast1 = cast1 & Mid(cislos, i, 1)
Next i
For i = x + 1 To Len(cislos)
cast2 = cast2 & Mid(cislos, i, 1)
Next i
a = Val(cast1)
b = Val(cast2)

Nahlásit jako SPAM
IP: 89.102.3.–
Zavi0
Newbie
10. 6. 2009   #8
-
0
-

x = InStr(1, cislos, ",")
cast1 = Left(cislos, x - 1)
cast2 = Mid(cislos, x + 1)

a = Val(cast1)
b = Val(cast2)

nemusíš to přidávat po znacích, stačí vzít celou část do a pak od čárky

Nahlásit jako SPAM
IP: 89.103.236.–
kolotoc
~ Anonymní uživatel
17 příspěvků
10. 6. 2009   #9
-
0
-

ajo, to mě nenapadlo :), diky

Nahlásit jako SPAM
IP: 89.102.3.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 8 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý