0

1.51.6666またはの番号を持ってい1.777ます。

これらの float 値を int 部分から抽出するにはどうすればよいですか? 丸めるだけでなく、異なる変数に分けます。

期待される出力は$var1 = 1$var2 = 0.5です1.5

4

5 に答える 5

1

最初に整数部分を取得し、それを元から減算します。

$original = 1.6666;
$intPortion = intval($original);
$floatPortion = $original - $intPortion;
于 2013-01-15T17:48:55.847 に答える
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 Math 関数を参照してください。

于 2013-01-15T18:10:36.090 に答える
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 に答える