鉴于屏幕尺寸列表,我如何检测哪些屏幕尺寸为4:3 16:9? 我可以使用宽度/高度来获得它但是对于16:9大小我有时会得到1.778,有时由于舍入错误我得到1.777778。
答案 0 :(得分:10)
检查4 * height == 3 * width
或16 * height == 9 * width
。
记住有理数的定义:它是一对等价类的整数对( m , n )受等价( m , n )≡( m ', n ')当且仅当 n < / EM> '米 = 名词 米'。
答案 1 :(得分:2)
您可以强制舍入始终相同,然后您可以比较值:
float ratio = (int)((width / height) * 100);
对于16:9,您将始终获得177,而对于4:3,您将获得133
祝你好运答案 2 :(得分:0)
与某些epsilon接近度进行比较。
应该是这样的:
double epsilon = 0.01;
if(math.abs(screen1.height/screen1.width - screen2.height/screen2.width) < epsilon)
{
//equal ratios
}
答案 3 :(得分:0)
您必须使用epsilon值进行比较。 您可以查看:http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm