yüzdeye göre birden 2 ondalık basamak rakam

2 Cevap php

Bir fiyat verileri bu gibi saklanan adres: 10.25

Ve bu 1,1100 (% 1.00) gibi yüzde verileri

Ben doğru bir yüzdeye göre fiyatı çarpar bir işlev gerekir. (Php)

Teşekkürler

2 Cevap

  • Bir ondalık olarak para saklamak asla. Hep intergers kullanın.

  • $money * ($percentage / 100) ile yanlış nedir

Eğer iki farklı alanlara mümkünse içine yüzde veri depolama bölünmüş eğer muhtemelen iyi olurdu. Ancak bu aradığınız ne yapacak, ben inanıyorum. Ben iki fonksiyon bölmek - "convertPercentageDataToDecimal" "convertPercentageDataToDecimal" sadece yüzde fiyatını çarpar, sonra veri yüzde ayıklar ve ondalık dönüştürür.

<?php 

$price = 10.25;
$percentageData = "1.1100 (1.00%)";

function multiplyPriceByPercentageData($price, $percentageData) {
    $percent = convertPercentageDataToDecimal($percentageData);
    return $price * $percent;
}

function convertPercentageDataToDecimal($percentageData) {
    $start = strpos($percentageData, '(') + 1;
    $length = strpos($percentageData, '%') - $start;
    $percent = substr($percentageData, $start, $length);
    return $percent / 100;
}

var_dump(convertPercentageDataToDecimal($percentageData));
var_dump(multiplyPriceByPercentageData($price, $percentageData));

// output:
//   float(0.01)
//   float(0.1025)