Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Na lewo od przecinka :)
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004
Na lewo od przecinka :)

Pytanie banalne ale zapomniałem jak
pobrać z liczby wartość na lewo od przecinka - np. 47,344366 ale moze być też 198,346346no i ma zwrócić

47 i 198

Pozdrawiam


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

05-12-2004 13:48
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

Znalazłem Funkcję Fix - pasuje ?


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

05-12-2004 14:29
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
bisiek




Typ: neutral
Postów: 487
Zarejestrowany: Jul 2003

Użyj Int.


_____________________________________________
www.mob.abc.pl - moja strona o VB

05-12-2004 14:53
Pokaż profil bisiek  Wyślij email do bisiek   Odwiedź stronę bisiek       3380672
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

Ok dzięki - hmmm działanie identyczne jak funkcja Fix


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

05-12-2004 14:56
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

Fix i Int nie działają tak samo.
Int zaokrągla w dół, Fix zaokrągla w stronę 0.


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

05-12-2004 19:07
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
bisiek




Typ: neutral
Postów: 487
Zarejestrowany: Jul 2003

Z tego co wiem, to Int nie zaokrągla, tylko odcina wartość ułamkową. Co do fix - nie używam.


_____________________________________________
www.mob.abc.pl - moja strona o VB

05-12-2004 19:10
Pokaż profil bisiek  Wyślij email do bisiek   Odwiedź stronę bisiek       3380672
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

Ucięcie części ułamkowej to nic innego jak jedna z form zaokrąglania . Ale rzeczywiście powinienem bardziej to sprecyzować - chodziło o zaokrąglanie do wartości całkowitych. Do wartości niecałkowitych zaokrągla natomiast funkcja Round, zaokrąglająca także w kierunku zera.


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

05-12-2004 19:56
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

No tylko mi chodziło o to żeby nie zaokroglało - funkcję Round znam i wiem że zaokroglą w dół albo w górę zależnie od wartości po przecinku

Pozdrawiam


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

05-12-2004 20:28
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
Knight Lore''FC




Typ: neutral
Postów: 240
Zarejestrowany: Jan 2003

Jest jeszcze Cint 

06-12-2004 22:27
Pokaż profil Knight Lore  Wyślij email do Knight Lore        1065423
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

CInt prawdopodobnie zaokrągla


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

06-12-2004 23:33
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

CInt jest raczej funkcją zamiany typu, ale też zaokrągla, w stronę zera dla [c;c+0.5], w stronę nieskończoności dla (c+0.5;c+1).


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

07-12-2004 02:55
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003


Pytanie banalne ale zapomniałem jak
pobrać z liczby wartość na lewo od przecinka - np. 47,344366 ale moze być też 198,346346no i ma zwrócić

47 i 198

Pozdrawiam


a może potraktuj liczby jako ciąg znaków:

Dim liczba As String
Dim poz As Long

liczba = 255.4586789
poz = InStr(1, liczba, ","
If poz > 0 Then MsgBox Left(liczba, poz - 1)

liczba = 98.6789
poz = InStr(1, liczba, ","
If poz > 0 Then MsgBox Left(liczba, poz - 1)



_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

09-12-2004 17:27
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

Też dobry pomysł.

Ale ja zamiast używać ",", użyłbym Format(0,",". Nie zawsze przecinek lub kropka oznaczają to samo .


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

09-12-2004 17:47
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003

Wszystko zależy od ustawień systemowych...

Jeśli w kodzie wpiszesz 123.456789, to przy ustawieniach systemowych 'użyj znaku "," jako separatora' i tak Ci odczyta 123,456789.

Jeśli w polu tekstowym wpiszesz 123,456789, to przy ustawieniach systemowych 'użyj znaku "," jako separatora' i tak Ci odczyta 123,456789.

Mam nadzieję, że udało mi się to wyjaśnić...

Format i tak stosuje się do ustawień systemowych i również jest dobrym rozwiązaniem

Ja chcałem pokazać tylko jeden ze sposobów...

Generalnie, na forum, mamy podsuwać pomysły, a niech każdy je wykorzystuje jak chce - prawda?


_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

09-12-2004 18:59
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
stefan




Typ: neutral
Postów: 9
Zarejestrowany: Dec 2004

Int  zaokrągla w dół 
x=Int(4.5)
x=4

CInt  zaogrągla w góre
x=CInt(4.5)
x=5

[Post edytowany dnia 09-12-2004 19:40 przez stefan]

09-12-2004 19:40
Pokaż profil stefan  Wyślij email do stefan   
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

Losmac
No własnie - przy ustawieniach ",".. a ja np. mam ".". A co będzie, gdy ktoś będzie miał ";" ?
Nie mówię, ze twój kod był zły, tylko podsuwam
pomysł, jak go udoskonalić.

reszta
Żeby tak nie rozrzucać tego po wątku, tutaj daję informację, w którą stronę co zaokrągla:

Int:
Zaokrągla do całkowitych w dół
Fix:
Zaokrągla do całkowitych w stronę 0
Round
Zaokrągla do wybranego miejsca w stronę najbliższej liczby spełniajacej wymagania.
CInt:
Zaokrągla do całkowitych w stronę najbliższej całkowitej.


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

09-12-2004 20:11
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
Wszystkich odpowiedzi: 15 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1