Mam pewien problem poniewaz w tablicy mam pewna wartosc przyklad 25.0
Wyswietalm ja w menu poniewaz to jest cena przedmiotu i pokazuje mi 24.9... Dlaczego ?
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.
  | 
             
Napisano 17.01.2016 14:23
Mam pewien problem poniewaz w tablicy mam pewna wartosc przyklad 25.0
Wyswietalm ja w menu poniewaz to jest cena przedmiotu i pokazuje mi 24.9... Dlaczego ?
Napisano 17.01.2016 16:30
Ostatnio też się na tym zastanawiałem, ale zignorowałem to i ustawiłem sobie liczbę o 1 większą i tak jak chciałem pokazywało;D
http://amxx.pl/dokum...f944/floatround
Napisano 17.01.2016 18:54
No wlasnie w tym problem poniewaz mam w tablicy 4 elementy i 3 dobrze pokazuje a tylko ten jeden zle ;/ moze to blad jest w wyswietlaniu bo korzystam z tego :
%0.1f
Napisano 19.01.2016 00:49
Wie ktos moze jak poprawnie zapisac float do vault i jak poprawnie odczytac poniewaz tak samo mi urywa koncowki jak z tablicy.
A mi zalezy na tym aby pokazywalo mi w hud przykladowo 25.8. Tak zapisana jest kasa gracza.
Napisano 19.01.2016 10:26
Pomnóż przez 10, zapisz jako zwyklego inta a przy odczytywaniu podziel przez 10 i powinien ci wyjsc float
Napisano 19.01.2016 20:32
A jakis zwykly zapis bez wykonywania tego ?
Napisano 20.01.2016 12:25
Liczby zmiennoprzecinkowe mają skończoną dokładność sposób z mnożeniem i dzieleniem przez 10 jest ciekawym rozwiązaniem pokaż więcej kodu może coś poradzimy więcej ![]()
Napisano 20.01.2016 20:14
Mam pewien problem poniewaz w tablicy mam pewna wartosc przyklad 25.0
Wyswietalm ja w menu poniewaz to jest cena przedmiotu i pokazuje mi 24.9... Dlaczego ?
Nie wiesz? Chwyt marketingowy, ceny już od wielu lat wszędzie tak wyglądają  ![]()
A tak serio, OddajWiertarkę zaproponował bardzo dobre rozwiązanie. JEdnak jak pokażesz kod to może uda się znaleźć kolejne.
Napisano 20.01.2016 22:02
new const Float:koszt_balla[] = {0.0,10.0,25.0,50.0,100.0}
case 0:
        {
            new pb[60];
            new gb[60];
            new sb[60];
            new ub[60];
            new tytul[25];
            format(pb, 59, "PokeBall [$%0.1f/szt.])",koszt_balla[1]);
            format(gb, 59, "GreatBall [$%0.1f/szt.])",koszt_balla[2]);
            format(sb, 59, "SuperBall [$%0.1f/szt.])",koszt_balla[3]);
            format(ub, 59, "UltraBall [$%0.1f/szt.])",koszt_balla[4]);
            format(tytul, 24, "Wybor Balla");
            new menu = menu_create(tytul, "KupBalle_Handler");
            menu_additem(menu, pb);
            menu_additem(menu, gb);
            menu_additem(menu, sb);
            menu_additem(menu, ub);
            menu_display(id, menu);
            
        }
Nr 1,3,4 pokazuje ok.. tylko problem jest z 25
Użytkownik NiczegoWinien edytował ten post 20.01.2016 22:04
Napisano 22.01.2016 10:29
Standardowy problem, ja dodawałem sobie 0.000001
Ew spróbuj tego
stock Float:round(Float:value, decimals)
{
    new Float:p = float(power(10, decimals));
    return float(floatround(value * p, floatround_floor)) / p;
}
					
					Napisano 22.01.2016 11:32
Napisano 22.01.2016 19:34
Dla bezpieczeństwa do wszystkich.
Napisano 23.01.2016 00:12
A jeszcze jedno pytanie bo nie jestem pewien.
Jezeli koszt itemu to 25 a dodam 0.00001 to gracza majac dokladnie 25 nie kupi tej rzeczy ?
Napisano 23.01.2016 15:56
Nie prościej zrezygnować z floatów i podawać ceny w całości? Przecież w cs i tak nie ma półdolarówek itp...
Napisano 23.01.2016 17:52
0 użytkowników, 1 gości, 0 anonimowych