整数とは、{..., -2, -1, 0, 1, 2, ...}の集合に属する数です。
整数の最大値と最小値は、PHPが動作しているシステムによって決まります。
通常、最近のほとんどのシステムでは、整数は64ビットの値です。つまり、-9_223_372_036_854_775_808から9_223_372_036_854_775_807までを表すことができます。
<?php
$a = 1234;
$a = 1_234_567;
基数の接頭辞を使うと、10進数以外の基数で整数リテラルを書くことができます。
<?php
$a = 0123; // octal number (equivalent to 83 decimal)
$a = 0o123; // octal number (as of PHP 8.1.0)
$a = 0x1A; // hexadecimal number (equivalent to 26 decimal)
$a = 0b11111111; // binary number (equivalent to 255 decimal)
PHPのドキュメントより
PHPでは、実数の一部を表すために浮動小数点数を使います。 小数点で区切られた1桁以上の数字で始まります。
<?php
$a = 1.234;
$b = 1.2e3;
$c = 7E-10;
$d = 1_234.567; // as of PHP 7.4.0
すべての数値と算術演算が浮動小数点数で扱えるわけではありません。 ドルとセントを表すのに浮動小数点数を使うと、丸め誤差につながることがあります。
<?php
$result = 0.1 + 0.2; // => 0.30000000000000004
PHPには、算術演算を行うための演算子がいくつか用意されています。PHPの算術演算子は、数学の標準的な演算の順序に従います。PHPで用意されている演算子は次のとおりです。
$moles = +'10';
$aLotOfMoles = 6.022 * 10**23 * $moles;
リリーは料理が大好きです。 友達と一緒にピザパーティーを開きたいと思っています。 材料を無駄なく使い切るには、作り始める前にそれぞれの材料がどれくらい必要かを知っておかなければなりません。
そこでリリーは、計画の一部を自動化するプログラムを書き始めましたが、完成させるには助けが必要です。 リリーが分量ぴったりのピザパーティーを開くのを手伝ってみませんか?
リリーは、耳まで薄いパリッとしたクリスピーなピザが好きです。 中央部分に必要な生地は最低200gですが、食べる人が1人増えるごとに生地がさらに20g必要になります。
grams = pizzas * ((persons * 20) + 200)
リリーが必要としているのは、次のような関数です。
たとえば、8人分になるピザを4枚作る場合を考えてみましょう。
<?php
$pizza_pi = new PizzaPi();
$pizza_pi->calculateDoughRequirement(4, 8);
// => 1440
リリーはソースをかける量にはとても細かく気を配りますが、ピザの大きさは毎回同じとは限りません。 経験から、ピザ1枚につき125mLのソースが必要だと知っています。 リリーが必要としているのは、ソースを何缶買えばよいかを計算する関数です。
cans of sauce = pizzas * sauce per pizza / sauce can volume
たとえば、8枚のピザを作る必要があり、1缶が250mLの場合を考えてみましょう。
<?php
$pizza_pi = new PizzaPi();
$pizza_pi->calculateSauceRequirement(8, 250);
// => 4
チーズはきれいな立方体の形で、大きさごとに売られています。
リリーが使う式はピザの面積を求める式ではありません。チーズをピザ全体に敷き詰めたいわけでは_ない_からです。
そこでリリーは、ある一辺の長さ(cheese_dimension)のチーズの立方体から、ある直径(diameter)のピザが何枚作れるかを求めるために、次の式を使うことにしました。
pizzas = (cheese_dimension³) / (thickness * PI * diameter)
次のような関数を作成してください。
たとえば、25x25x25cmのチーズの立方体、厚さ0.5cmのチーズ層、直径30cmのピザの場合を考えてみましょう。
<?php
$pizza_pi = new PizzaPi();
$pizza_pi->calculateCheeseCubeCoverage(25, 0.5, 30);
// => 331
最後に、リリーはピザを1枚8切れに分けて、友達に公平に配りたいと思っています。
次のような関数を作成してください。
たとえば、次のようになります。
<?php
$pizza_pi = new PizzaPi();
$pizza_pi->calculateLeftOverSlices(2, 4);
// => 0
$pizza_pi->calculateLeftOverSlices(4, 3);
// => 2