Witamy w Nieoficjalnym polskim support'cie AMX Mod X
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
#1
Napisano 12.08.2011 13:34
może być w języku angielskim
chcę się w to bardziej wgłębić
#3
Napisano 12.08.2011 15:24
#4
Napisano 12.08.2011 15:35
Szukam dokładnego opisu używania znaków formatujących ( np. %f %d %i )
PS. Przeleciałem całe google i Yahoo, lecz nie znalazłem terminu 'znaki formatujące'. Najwidoczniej on nie istnieje
Użytkownik Zkont?! edytował ten post 12.08.2011 22:37
#5
Napisano 12.08.2011 17:01
#6
Napisano 12.08.2011 18:25
Sądzę, że to nie jest synonim.
%i - integer - Typ liczbowy stałoprzecinkowy (w tym całkowitoliczbowy), ze znakiem, (na ogół 32 bitowy - 4bajty - z zakresem -2147483648 .. 2147483647).
by R3X - dziękuję, za upewnienie, sprostowanie.
%d - decimal - Liczba dziesiętna.
Były 3 teorie:
Pierwsza:
- Jest pierwsze "ale" - Pawn jest językiem skryptowym 32-bitowym...
Druga:
- I tu też jest "ale" - nie tworzymy zmiennej typu double, w sposób: "new Double:Zmienna" ani też nie wyświetlamy Float'ów za pomocą formatowania %d.
Można zatem sprawdzić, czy rzeczywiście tak jest, próbując wyświetlić liczbę rzeczywistą za pomocą tego formatowania:
#include <amxmodx> public plugin_init() { register_plugin("test", "0.001", "vaverix"); register_clcmd("say /test", "test"); } public test(id) { client_print(id, 3, "int: %d", 2); // liczba całkowita client_print(id, 3, "float: %d", 2.24428); // liczba rzeczywista }
Gdzie po wpisaniu /test w czacie wyświetli się:
int: 2 float: 10747664
A więc liczbę całkowitą (typ integer) wyświetla poprawnie, a liczbę rzeczywistą (zmiennoprzecinkową - float) już nie.
Trzecia:
Niczego nie narzucam. To jest temat warty przedyskutowania.
Użytkownik vaverix edytował ten post 12.08.2011 19:08
#7
Napisano 12.08.2011 18:47
%d nie wyświetla poprawnie floatów, bo Float: jest przetwarzany zgodnie ze standardem IEE 754-1985, interpretacja całkowita nie ma sensu
#8
Napisano 12.08.2011 19:15
1. Odsyłam do linku nt. słowa 'Decimal' w angielskiej wikipedii. >> Decimal From Wikipedia, the free encyclopedia. Jak możecie z tego wywnioskować, decimalem nazywamy dziesiętny typ zapisu danych.
2. Następną stroną jest coś poświęcone wyrazowi 'Integer'. Podaję wersję również z angielskiej wikipedii. >> Integer From Wikipedia, the free encyclopedia. Jak widać po wyczytaniu samego wstępu, integer jest to angielskie nazewnictwo liczby całkowitej.
3. Teraz możemy śmiało powiedzieć, że jedno i drugie to właściwie to samo. Myślę, że spór zakończony.
Użytkownik Zkont?! edytował ten post 12.08.2011 22:38
#9
Napisano 12.08.2011 21:07
3. Teraz możemy śmiało powiedzieć, że jedno i drugie to właściwie to samo. Myślę, że spór zakończony.
Sporu nie ma, bo wszystko wyżej jest wyjaśnione.
%i - liczba całkowita
%d - liczba dziesiętna
Użytkownik vaverix edytował ten post 12.08.2011 21:08
#10
Napisano 12.08.2011 22:27
#11
Napisano 12.08.2011 22:33
Niżej daję Wam wyjaśnienie.
Jak już nam wyjaśniasz to przynajmniej wyciągaj rozsądne wnioski. Takich bzdur, że integer i decimal to to samo dawno nie słyszałem.3. Teraz możemy śmiało powiedzieć, że jedno i drugie to właściwie to samo.
Liczba `całkowita` dotyczy ogólnego podziału liczb, a `dziesiętna` określa system liczbowy.
Liczba dziesiętna to też 0x10, 010, 0b120, ale format %i ma narzucony system dziesiętny. Z liczbami całkowitymi związane są też inne formaty: %x, %X, %o, %b no i właśnie %d. Każdy z nich jest związany z jakimś systemem liczbowym. Właśnie dlatego formatowanie liczby całkowitej w systemie dziesiętnym ma 2 znaczki:
- %i jako ogólnie liczba całkowita, domyślnie w systemie dzisiętnym
- %d bez domysłów jako liczba całkowita w systemie dziesiętnym.
a i wcześniej nie zauważyłem
sam podałeś link, który temu zaprzeczatakie znaczniki występują tylko w C i C++
Przy okazji opisywania funkcji format sprawdziłem, które % z C działają w Pawnie tylko ktoś mi popsuł tabelkę
#12
Napisano 12.08.2011 22:43
Użytkownik Zkont?! edytował ten post 12.08.2011 22:44
#13
Napisano 12.08.2011 22:51
#14
Napisano 12.08.2011 22:51
#15
Napisano 12.08.2011 23:05
Popularny
Mamy liczbę x=16
i teraz możemy ją wydrukować jako liczbę całkowitą
log_amx("x=%i", x);%i samo wybierze system dziesiętny i efekt będzie taki:
x=16
albo sprecyzować liczbie całkowitej system liczbowy
log_amx("x=0x%X", x); //szesnastkowy
x=0x10
log_amx("x=0%o", x);//ósemkowy
x=020
log_amx("x=%d", x);//dziesiętny
x=16
Proszę bardzo, wynik z użyciem %i i %d jest taki sam. %d jest aliasem dla %i (lub odwrotnie). To jak przypisujemy wartość do zmiennej x nie znaczenia, wszystko i tak jest konwertowane na system binarny w pamięci komputera.
Również z jednym lub większą ilością słów kluczowych: Inny
|
Inny
[KOSZ] csgo mod v2 by O'ZoneNapisany przez LuxiStudioPL, 23.03.2024 inny |
|
|||
Inny
Zewnętrzna strona na IP serwera wwwNapisany przez Booom, 17.03.2024 inny |
|
||||
Inny
Dodanie Broni do PaintBallNapisany przez One ShooT, 05.02.2024 inny, modyfikacja |
|
||||
Inny
[Zlecenie płatne] Edycja pluginówNapisany przez pexo, 01.02.2024 inny |
|
||||
Inny
OnlyDD2 (2023)Napisany przez xSPECJALSx, 12.11.2023 inny |
|
Użytkownicy przeglądający ten temat: 1
0 użytkowników, 1 gości, 0 anonimowych