• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Pawn] Problem with percentage
#1
Hi guys



I use percentage for many things in my SA-MP server.(discounts,tax etc),but I have some problems with it.



For "small" numbers it work pretty nice.



Code:



Code:
new result = PERCENT*PRICE/100;



printf("Result: %d",result);





First test:

PERCENT: 75

PRICE: 140 000 000

Result:?19100654



Result is ok



Second test:

PERCENT: 75

PRICE: 340 000 000

Result:?-17698038



Result is wrong





Does anyone have idea how I should fix it?
  Reply
#2
Because -2??-1 is the max value a single variable can store and as soon as you can try to go beyond that value, it overflows and starts going backwards...



Try price * 0.percentage



Ex: 340 000 000 * 0.75
Using Pawn.CMD?

If you're doing so, this is the very first sign that you absolutely shouldn't utilize your all powerful P-Code knowledge in any of the scripting discussion topics.
  Reply
#3
(2020-12-22, 11:36 AM)Pinch Wrote: Because -2??-1 is the max value a single variable can store and as soon as you can try to go beyond that value, it overflows and starts going backwards...



Try price * 0.percentage



Ex: 340 000 000 * 0.75



Hm ?



[Image: Fcsjxv6.png]
  Reply
#4
My bad, price - (price * 0.75)
Using Pawn.CMD?

If you're doing so, this is the very first sign that you absolutely shouldn't utilize your all powerful P-Code knowledge in any of the scripting discussion topics.
  Reply


Forum Jump: