Я хочу суммировать (ДОБАВИТЬ) два числа, как
$numberOne = 50.400; //50 is KG and 400 is grams i-e 50 KG and 400 g
$numberTwo = 50.400;
$sum = $numberOne + $numberTwo; //100.8
Мне нужен результат, я-е $sum = 100.800
// это значит 100 кг и 800 грамм.
Actullay Я рассчитываю кг и грамм. почему я делаю это, потому что я рассчитываю общую стоимость из кг и граммов. Я сохраняю это в БД тоже тип данных является десятичным
Поправьте меня, я делаю что-то не так.
Если вы хотите получить число в виде строки с 3 десятичными знаками, используйте
$number_as_string = number_format($sum, 3, '.', '');
Чтобы преобразовать строковый ввод, где килограммы и граммы разделены символом «.», Вы можете использовать следующую функцию (ввод не является десятичным числом!):
function str2decimal($numberStr)
{
list($kg, $g) = explode('.', $numberStr);
$numberDecimal = $kg + ($g / 1000);
return $numberDecimal;
}
Пример:
$number1Decimal = str2decimal('50.4'); // 50.004 kg = 50 kg + 4 g
$number2Decimal = str2decimal('50.40'); // 50.04 kg = 50 kg + 40 g
$sum = $number1Decimal + $number2Decimal; // 100.044 kg = 100 kg + 44 g
используйте функцию round (). Вы можете установить желаемое количество десятичных знаков и метод (округление вверх / вниз):
Вы, наверное, ищете number_format () функция
Обновление: перед вычислением суммы необходимо преобразовать пользовательский ввод в согласованный формат с помощью функции.
function formatWeightInput($number) {
$numberParts = explode('.', $number);
$number = $numberParts[0] . '.' . str_pad($numberParts[1], 3, '0', STR_PAD_LEFT);
return $number;
}
$numberOne = formatWeightInput('50.4');
$numberTwo = formatWeightInput('50.400');
$sum = number_format($numberOne + $numberTwo, 3); //100.404