Добавляем два номера

Я хочу суммировать (ДОБАВИТЬ) два числа, как

$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 Я рассчитываю кг и грамм. почему я делаю это, потому что я рассчитываю общую стоимость из кг и граммов. Я сохраняю это в БД тоже тип данных является десятичным

Поправьте меня, я делаю что-то не так.

-2

Решение

Если вы хотите получить число в виде строки с 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
1

Другие решения

используйте функцию round (). Вы можете установить желаемое количество десятичных знаков и метод (округление вверх / вниз):

http://php.net/manual/en/function.round.php

0

Вы, наверное, ищете 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
0
По вопросам рекламы [email protected]