Avatar billede srofhest Nybegynder
15. maj 2009 - 18:28 Der er 4 kommentarer og
1 løsning

problem med floats.

Hey eksperter jeg har et problem med nogle floats.

Jeg har en cs server kørende og har lavet et mod.

i mod'et har jeg følgene kode(sammenklip).

[php]
new Float:PlayerPoints[32]
TurnoverProcent=register_cvar("money_turnover_percent", "2.00");
new Float:Diff=floatdiv(get_pcvar_float(TurnoverProcent),100.00);
new Float:Points = floatmul(get_pcvar_float(Cash), Diff);
client_print(iKiller,print_chat, "Diff: %.2f",Diff);
client_print(iKiller,print_chat, "Points %.2f",Points);

[/php]

problemet er at Diff bliver 0.01 og ikke 0.02 som det gerne skulle og første gang man skyder en i gamet får man kun 0.01 points, derefter får man 0.02 (for det meste) selvom Diff bliver ved med at være 0.01.

vedlagt 2 ingame screens.

inden kill.
www.keep-gaming.com/1.bmp
efter 1 kill.
www.keep-gaming.com/2.bmp
efter 2 kills
www.keep-gaming.com/3.bmp

som i kan se laver den en eller anden fejl første gang men anden gang gør den den (næsten)rigtigt.
Avatar billede arne_v Ekspert
15. maj 2009 - 18:36 #1
Har du mulighed for at lave beregningerne som heltals beregninger med implicit decimal ?

Floating point er notorisk problematiske til praecise beregninger.
Avatar billede srofhest Nybegynder
15. maj 2009 - 19:07 #2
Det tror jeg desværre ikke.

Her er alle mulige funktioner
http://www.amxmodx.org/funcwiki.php?go=all_func
Avatar billede srofhest Nybegynder
15. maj 2009 - 19:11 #3
Eller det kan godt værre, i så fald har jeg i hver fald ingen ide om hvordan.
Avatar billede srofhest Nybegynder
16. maj 2009 - 20:02 #4
Kan du komme med eksempel på hvordan det fx kunne se ud?
Avatar billede srofhest Nybegynder
06. august 2010 - 03:20 #5
lukket
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester