質問
PHPで数値を小数点で分割するにはどうすればよいですか
$ num = 15/4があります。これにより、$ numが3.75になります。 3つの部分と75の部分を分割したいので、$ int = 3と$ dec = 75です。動作しないコードは次のとおりです。
$num = 15/4; // or $num = 3.75;
list($int, $dec) = split('.', $num);
しかし、空の$ intと$ decになります。
事前に感謝します。
解決
数値の10進表現を explode
すると、精度が失われます。気にしないのであれば、気にしないでください(テキスト表現でも構いません)。ロケールを考慮してください!ベルギー人はコンマを使用します(少なくともプログラミング以外のものは:)。
やる気にした場合(計算など)、 floor
関数を使用できます:
$num = 15/4
$intpart = floor( $num ) // results in 3
$fraction = $num - $intpart // results in 0.75
注:これは正数用です。負の数の場合、符号を反転し、正のアプローチを使用して、int部分の符号を反転できます。
他のヒント
$num = 15/4; // or $num = 3.75;
list($int, $dec) = explode('.', $num);
$int = $num > 0 ? floor($num) : ceil($num);
$dec = $num - $int;
$ num
が負(他の回答と同様)のときに $ dec
を正にしたい場合は、次のようにします。
$dec = abs($num - $int);
$num = 3.75;
$fraction = $num - (int) $num;
$num = 15/4;
substr(strrchr($num, "."), 1)
精度を失いたくない場合は、これらを使用できます:
$number = 10.10;
$number = number_format($number, 2, ".", ",");
sscanf($number, '%d.%d', $whole, $fraction);
// you will get $whole = 10, $fraction = 10
これは正の数と負の数で機能します:
$num = 5.7;
$whole = (int) $num; // 5
$frac = $num - (int) $num; // .7
所属していません StackOverflow