我想将(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中保存它,数据类型是十进制
纠正我我做错了什么。
答案 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()函数。您可以设置所需的小数位数和方法(向上/向下舍入):
答案 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