Advertisement
mrmeihem

Untitled

Jan 25th, 2022
1,100
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Be aware that we prettify prices after conversion 😄 That code is quite long:
  2.  
  3.        if(!$specialRounding){
  4.             //Major Tipping Points
  5.             $majorTipped = false;
  6.  
  7.             switch ($result){
  8.                 case $result >= 89 && $result <= 111:
  9.                     $result = 100;
  10.                     $majorTipped = true;
  11.                     break;
  12.  
  13.                 case $result >= 890 && $result <= 1110:
  14.                     $result = 1000;
  15.                     $majorTipped = true;
  16.                     break;
  17.  
  18.                 case $result >= 8900 && $result <= 11100:
  19.                     $result = 10000;
  20.                     $majorTipped = true;
  21.                     break;
  22.  
  23.                 case $result >= 89000 && $result <= 111000:
  24.                     $result = 100000;
  25.                     $majorTipped = true;
  26.                     break;
  27.  
  28.                 case $result >= 890000 && $result <= 111000:
  29.                     $result = 1000000;
  30.                     $majorTipped = true;
  31.                     break;
  32.  
  33.                 case $result >= 8900000 && $result <= 1110000:
  34.                     $result = 10000000;
  35.                     $majorTipped = true;
  36.                     break;
  37.             }
  38.  
  39.             if(!$majorTipped){
  40.                 $resultBeforeTipping = $result;
  41.  
  42.                 //Check Tipping Points
  43.                 $nearest_100 = round ($result, -2);
  44.                 $proximity = abs((($nearest_100 - $result) / $nearest_100)*100);
  45.  
  46.                 if($proximity <= 4.5 && $result > 111.01 && $result < 889.99){
  47.                     $result = $nearest_100;
  48.                 } else{
  49.                     $nearest_1000 = round ($result, -3);
  50.                     $proximity = abs((($nearest_1000 - $result) / $nearest_1000)*100);
  51.  
  52.                     if($proximity <= 4.5 && $result > 1110.01 && $result < 8899.99){
  53.                         $result = $nearest_1000;
  54.                     } else{
  55.                         $nearest_10000 = round ($result, -4);
  56.                         $proximity = abs((($nearest_10000 - $result) / $nearest_10000)*100);
  57.  
  58.                         if($proximity <= 4.5 && $result > 11100.01 && $result < 88999.99){
  59.                             $result = $nearest_10000;
  60.                         } else{
  61.                             $nearest_100000 = round ($result, -5);
  62.                             $proximity = abs((($nearest_100000 - $result) / $nearest_100000)*100);
  63.  
  64.                             if($proximity <= 4.5 && $result > 111000.01 && $result < 889999.99){
  65.                                 $result = $nearest_100000;
  66.                             } else{
  67.                                 $nearest_1000000 = round ($result, -6);
  68.                                 $proximity = abs((($nearest_1000000 - $result) / $nearest_1000000)*100);
  69.  
  70.                                 if($proximity <= 4.5 && $result > 1110000.01 && $result < 8899999.99){
  71.                                     $result = $nearest_1000000;
  72.                                 }
  73.                             }
  74.                         }
  75.                     }
  76.                 }
  77.  
  78.                 //If not tipped - do general intervals
  79.                 if($result == $resultBeforeTipping){
  80.                     if($result >= 17.5){
  81.                         if($result > 17.5 && $result < 50){
  82.                             $result = $this->roundToNearest($result, 5);
  83.                         } elseif($result < 100){
  84.                             $nearest_10 = round ($result, -1);
  85.                             $distance = abs($nearest_10 - $result);
  86.  
  87.                             if($distance <= 3.5){
  88.                                 $result = $nearest_10;
  89.                             } else{
  90.                                 $result = $this->roundToNearest($result, 5);
  91.                             }
  92.                         } elseif($result < 200){
  93.                             $result = round ($result, -1);
  94.                         } elseif($result < 1000){
  95.                             $result = $this->roundToNearest($result, 50);
  96.                         } elseif($result < 5000){
  97.                             $nearest_100 = round ($result, -2);
  98.                             $distance = abs($nearest_100 - $result);
  99.  
  100.                             if($distance <= 45){
  101.                                 $result = $nearest_100;
  102.                             } else{
  103.                                 $result = $this->roundToNearest($result, 50);
  104.                             }
  105.                         } elseif($result < 10000){
  106.                             $result = $this->roundToNearest($result, 100);
  107.                         } elseif($result < 50000){
  108.                             $nearest_1000 = round ($result, -3);
  109.                             $distance = abs($nearest_1000 - $result);
  110.  
  111.                             if($distance <= 450){
  112.                                 $result = $nearest_1000;
  113.                             } else{
  114.                                 $result = $this->roundToNearest($result, 500);
  115.                             }
  116.                         } elseif($result < 100000){
  117.                             $result = $this->roundToNearest($result, 1000);
  118.                         } elseif($result < 500000){
  119.                             $nearest_10000 = round ($result, -4);
  120.                             $distance = abs($nearest_10000 - $result);
  121.  
  122.                             if($distance <= 4500){
  123.                                 $result = $nearest_10000;
  124.                             } else{
  125.                                 $result = $this->roundToNearest($result, 5000);
  126.                             }
  127.                         } elseif($result < 1000000){
  128.                             $result = $this->roundToNearest($result, 10000);
  129.                         } elseif($result < 5000000){
  130.                             $nearest_100000 = round ($result, -5);
  131.                             $distance = abs($nearest_100000 - $result);
  132.  
  133.                             if($distance <= 45000){
  134.                                 $result = $nearest_100000;
  135.                             } else{
  136.                                 $result = $this->roundToNearest($result, 50000);
  137.                             }
  138.                         } elseif($result < 10000000){
  139.                             $result = $this->roundToNearest($result, 100000);
  140.                         }
  141.                     }
  142.                 }
  143.             }
  144.  
  145.             //Cast to int if it's not already rounded by now
  146.             $result = (int)round($result,0);
  147.  
  148.             //Final Currency Adjustments
  149.             if($rate < 1 && $result != 0){ //High value currencies (EUR/USD etc)
  150.                 if(($result % 10) == 0){
  151.                     $result -= 1;
  152.                 }
  153.             } elseif($rate < 4 && $result != 0){ //Medium value currencies (NOK/SEK etc)
  154.                 if(($result % 10) == 0){
  155.                     $result -= 1;
  156.                 }
  157.             } elseif($rate > 10){ //Low value currencies (HUF etc)
  158.                 $result -= 10;
  159.             }
  160.         }
Advertisement
Advertisement
Advertisement
RAW Paste Data Copied
Advertisement