如何从某个数字中提取浮点值(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是否希望每个浮点数来自一个字符串,我还不完全清楚