1

画面サイズのリストが与えられた場合、4:3 16:9のアスペクト比にあるものを検出するにはどうすればよいですか?幅/高さを使用して取得できますが、16:9サイズの場合、丸め誤差のために1.778になることもあれば、1.777778になることもあります。

4

4 に答える 4

10

4 * height == 3 * widthまたはを確認してください16 * height == 9 * width

有理数の定義を覚えておいてください。これは、 n'm  =  n m 'の 場合に限り、同値(mn)≡(m '、n ')の対象となる整数のペア(mn )の同値類です。 。 

于 2012-09-24T12:56:16.747 に答える
3

丸めを常に同じにするように強制してから、値を比較できます。

float ratio = (int)((width / height) * 100);

16:9の場合は常に177、4:3の場合は133になります。

幸運を

于 2012-09-24T13:06:01.993 に答える
0

いくつかのイプシロン近接と比較してください。

次のようになります。

double epsilon = 0.01;
if(math.abs(screen1.height/screen1.width - screen2.height/screen2.width) < epsilon)
{
//equal ratios
}
于 2012-09-24T12:59:13.147 に答える
0

比較にはイプシロン値を使用する必要があります。あなたは見ることができます:http ://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm

于 2012-09-24T12:59:22.430 に答える