画面サイズのリストが与えられた場合、4:3 16:9のアスペクト比にあるものを検出するにはどうすればよいですか?幅/高さを使用して取得できますが、16:9サイズの場合、丸め誤差のために1.778になることもあれば、1.777778になることもあります。
質問する
3008 次
4 に答える
10
4 * height == 3 * width
またはを確認してください16 * height == 9 * width
。
有理数の定義を覚えておいてください。これは、 n'm = n m 'の 場合に限り、同値(m、n)≡(m '、n ')の対象となる整数のペア(m、n )の同値類です。 。
于 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 に答える