Calculation Error

Started by mickjav, June 26, 2023, 07:43:39 AM

Previous topic - Next topic

mickjav

I have been testing the below but keep getting 9 points when it should give 8  :(

$pledge_amount = 22.00

What this is designed for is to calculate points for posts and STShop, Although I may add a separate amount for posts in settings.

Current Settings
$modSettings['pledges_points_per_multiply_for'] = 10
$modSettings['pledges_points_per_multiply'] = 2
$modSettings['pledges_points_per'] = 2

/*
Add The posts And Shop Points If Installed
Devide The Amount By pledges_points_per_multiply_for
*/
//Make sure of whole number
$pledge_amount = (int) $pledge_amount;
if ($pledge_amount >= $modSettings['pledges_points_per_multiply_for'])
//if default amount is £10 and payment is £10 or £11 this will be 1, £20 will be 2
//Rounds Down
$pledge_for = (int) $pledge_amount / $modSettings['pledges_points_per_multiply_for'];
else
$pledge_for = 1;

$Points = $modSettings['pledges_points_per_multiply'] * $pledge_for;

$Points = $modSettings['pledges_points_per'] * $Points;

GL700Wing

Quote from: mickjav on June 26, 2023, 07:43:39 AMI have been testing the below but keep getting 9 points when it should give 8  :(
My testing using your code gives an answer of 8.8 - if you only want the whole number change the last line to the following (ie, you need to use '(int)' with the bracketed calculation):
$Points = (int) ($modSettings['pledges_points_per'] * $Points);

Also, you don't need to use a second '(int) ' for '$pledge_amount' ...
Life doesn't have to be perfect to be wonderful ...

Slava
Ukraini!
"Before you allow people access to your forum, especially in an administrative position, you must be aware that that person can seriously damage your forum. Therefore, you should only allow people that you trust, implicitly, to have such access." -Douglas

mickjav

Thanks Sorted, Can move on now  ;D

Advertisement: