кратный 2 десятичный знак числа в процентах - PullRequest
0 голосов
/ 10 апреля 2010

A имеют данные о ценах, которые хранятся так: 10.25

И процентные данные, как это 1.1100 (1,00%)

Мне нужна функция, которая точно умножает цену на процент. (в php)

Спасибо

Ответы [ 2 ]

0 голосов
/ 10 апреля 2010

Вероятно, было бы лучше, если бы вы разбили хранилище ваших процентных данных на два разных поля, если это возможно. Но я думаю, это сделает то, что вы ищете. Я разделил его на две функции - "convertPercentageDataToDecimal" извлекает процент из ваших данных и преобразует его в десятичное число, а затем "convertPercentageDataToDecimal" просто умножает цену на процент.

<?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)
0 голосов
/ 10 апреля 2010
  • Никогда не храните валюту в виде десятичной дроби. Всегда используйте интергеры.

  • Что не так с $money * ($percentage / 100)

...