我有一个号码1.5
,1.6666
或者1.777
。
如何从 int 部分中提取这些浮点值?不仅是舍入,而且将它们分开在不同的变量中。
预期输出为$var1 = 1
和。$var2 = 0.5
1.5
我有一个号码1.5
,1.6666
或者1.777
。
如何从 int 部分中提取这些浮点值?不仅是舍入,而且将它们分开在不同的变量中。
预期输出为$var1 = 1
和。$var2 = 0.5
1.5
首先获取整数部分,然后从原始部分中减去它。
$original = 1.6666;
$intPortion = intval($original);
$floatPortion = $original - $intPortion;
将它们解释为字符串,并使用preg_split
这可能是你最好的选择:
$float = 1.666;
$remainder = fmod($float, 1);
$integer = intval($float, 10);
您还可以使用:
$var = 1.5;
$arr = explode('.', $var);
$wholeNum = $arr[0]; // 1
$decimalNum = $arr[1]; // 5
您可以通过多种方式做到这一点。让我们说$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 数学函数。