0

我有一个号码1.51.6666或者1.777

如何从 int 部分中提取这些浮点值?不仅是舍入,而且将它们分开在不同的变量中。

预期输出为$var1 = 1和。$var2 = 0.51.5

4

5 回答 5

1

首先获取整数部分,然后从原始部分中减去它。

$original = 1.6666;
$intPortion = intval($original);
$floatPortion = $original - $intPortion;
于 2013-01-15T17:48:55.847 回答
0

将它们解释为字符串,并使用preg_split

于 2013-01-15T17:45:06.397 回答
0

这可能是你最好的选择:

$float = 1.666;
$remainder = fmod($float, 1);
$integer = intval($float, 10);
于 2013-01-15T17:46:02.077 回答
0

您还可以使用:

$var = 1.5;
$arr = explode('.', $var);
$wholeNum = $arr[0];  // 1
$decimalNum = $arr[1];  // 5
于 2013-01-15T17:50:53.400 回答
0

您可以通过多种方式做到这一点。让我们说$v = 1.56;

示例 #1

$m = explode('.', $v);
$v1 = $m[0];
$v2 = '0.' . $m[1];
print_r("#1: \$v1 = $v1; \$v2 = $v2;\n");

示例 #2

preg_match('~^(\d+)\.(\d+)$~', $v, $m);
$v1 = $m[1];
$v2 = '0.' . $m[2];
print_r("#2: \$v1 = $v1; \$v2 = $v2;\n");

示例#3

$v1 = substr($v, 0, strpos($v, '.'));
$v2 = '0.' . substr($v, strpos($v, '.') + 1);
print_r("#3: \$v1 = $v1; \$v2 = $v2;\n");

示例 #4

$v1 = floor($v1);
$v2 = $v - $v1;
print_r("#4: \$v1 = $v1; \$v2 = $v2;\n");

所有示例都将输出 >

#1: $v1 = 1; $v2 = 0.56;
#2: $v1 = 1; $v2 = 0.56;
#3: $v1 = 1; $v2 = 0.56;
#4: $v1 = 1; $v2 = 0.56;

注意大浮点数。有关这些,请参见BC 数学函数

于 2013-01-15T18:10:36.090 回答