Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从某个数字中提取浮点值(php)_Php - Fatal编程技术网

如何从某个数字中提取浮点值(php)

如何从某个数字中提取浮点值(php),php,Php,我有一个数字1.5,1.6666或1.777 如何从int部分提取这些浮点值?不仅仅是圆的,而是用不同的变量将它们分开 对于1.5,$var1=1和$var2=0.5的预期输出是1.5,将它们解释为字符串,并使用这可能是您的最佳选择: $float = 1.666; $remainder = fmod($float, 1); $integer = intval($float, 10); 首先得到整数部分,然后从原始部分减去它 $original = 1.6666; $intPortion =

我有一个数字
1.5
1.6666
1.777

如何从int部分提取这些浮点值?不仅仅是圆的,而是用不同的变量将它们分开


对于
1.5
$var1=1
$var2=0.5
的预期输出是
1.5
,将它们解释为字符串,并使用这可能是您的最佳选择:

$float = 1.666;
$remainder = fmod($float, 1);
$integer = intval($float, 10);

首先得到整数部分,然后从原始部分减去它

$original = 1.6666;
$intPortion = intval($original);
$floatPortion = $original - $intPortion;
您还可以使用:

$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;


注意大浮点数。请参见。

您能给我们举个例子吗?您希望从哪个输入中得到什么输出?等等,那么您希望从字符串中获得每个浮点并拆分数字?像
1.5
->
$var1='1'
$var2='5'
?$var1=1,$var2=0.5像这样+1这是正确的答案。不需要摆弄模数或拆分字符串(或者,天哪,在这里使用正则表达式)。只要从浮点数中减去int即可。@JosephSilber:这个问题的表述方式,我并不完全清楚OP是一个浮点数,还是一个包含多个浮点数的字符串(逗号分隔)。对于后一种情况,这种方法确实需要在最底部设置一个
狭缝
least@JosephSilber当前位置其中一个是我的,我问OP是否希望每个浮点数来自一个字符串,我还不完全清楚