添加两个数字

时间:2014-11-26 12:43:21

标签: php string substring decimal type-conversion

我想将(ADD)两个数字相加,如

$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

我需要结果i-e $sum = 100.800 //它意味着100公斤和800克。

Actullay我正在计算KG和Grams。为什么我这样做是因为我从公斤和克计算总价。我也在DB中保存它,数据类型是十进制

纠正我我做错了什么。

3 个答案:

答案 0 :(得分:1)

如果你想要一个带有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 :(得分:0)

使用round()函数。您可以设置所需的小数位数和方法(向上/向下舍入):

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

答案 2 :(得分: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