Roman Toasov
Roman Toasov

Reputation: 821

PHP auto convert price to 99 rather than 100

I have different prices:

100
550
799
1200
350

Wonder how i can automatically convert them to

99
549
799
1200
349

I'd just do -1, but some are already correct like 799, and i don't want it to be 798.

Cant think of way to do this conversion i am good with PHP but not great with math. I bet we need to find if it divides by 2 if yes then subtract 1 if not then do nothing.

if ($price % 2) {
   $price = intval($price) - 1;
}

Is this the best way to do it?

Upvotes: 2

Views: 663

Answers (3)

Drown
Drown

Reputation: 5982

You could do something like this :

if (($price % 50) == 0)
{
    $price--;
}

Everytime the modulo of 50 will be equal to zero (this will be the case for any number that ends with "50" or "100"), it will remove one.

Change the second value (50 in this case) if you want to target more or less prices.

Upvotes: 2

Korbi
Korbi

Reputation: 764

As you don't want to have 798, your code does not work

But you can use this.

if ($price % 10) {
   $price = intval($price) - 1;
}

799 % 2 = 1
800 % 2 = 0
798 % 2 = 0

799 % 10 = 0
800 % 10 = 1
798 % 10 = 0

or %50 if you only want to subtract 1 from numbers like 750 and 800

Upvotes: 1

RichardBernards
RichardBernards

Reputation: 3097

Something like this?

if(($price % 10) == 0) {
    $price--;
}

Upvotes: 1

Related Questions