Если вы используете ориентацию getResources (). GetConfiguration (). На некоторых устройствах, вы ошибетесь. Мы использовали этот подход первоначально в http://apphance.com . Благодаря удаленному ведению журнала Apphance мы могли видеть его на разных устройствах и увидели, что фрагментация играет здесь свою роль. Я видел странные случаи: например, чередование портрета и квадрата (?!) в HTC Desire HD:
CONDITION[17:37:10.345] screen: rotation: 270 orientation: square
CONDITION[17:37:12.774] screen: rotation: 0 orientation: portrait
CONDITION[17:37:15.898] screen: rotation: 90
CONDITION[17:37:21.451] screen: rotation: 0
CONDITION[17:38:42.120] screen: rotation: 270 orientation: square
или отсутствие изменения ориентации вообще:
CONDITION[11:34:41.134] screen: rotation: 0
CONDITION[11:35:04.533] screen: rotation: 90
CONDITION[11:35:06.312] screen: rotation: 0
CONDITION[11:35:07.938] screen: rotation: 90
CONDITION[11:35:09.336] screen: rotation: 0
С другой стороны, width () и height () всегда корректны (они используются оконным менеджером, так что должно быть лучше). Я бы сказал, что лучшая идея - ВСЕГДА проверять ширину / высоту. Если вы подумаете о моменте, это именно то, что вы хотите - узнать, если ширина меньше высоты (портрет), наоборот (пейзаж) или они одинаковы (квадрат).
Тогда это сводится к этому простому коду:
public int getScreenOrientation()
{
Display getOrient = getWindowManager().getDefaultDisplay();
int orientation = Configuration.ORIENTATION_UNDEFINED;
if(getOrient.getWidth()==getOrient.getHeight()){
orientation = Configuration.ORIENTATION_SQUARE;
} else{
if(getOrient.getWidth() < getOrient.getHeight()){
orientation = Configuration.ORIENTATION_PORTRAIT;
}else {
orientation = Configuration.ORIENTATION_LANDSCAPE;
}
}
return orientation;
}
В Javascript все числа являются числами с плавающей запятой IEEE двойной точности , что означает, что у вас есть только около 16 цифр точности; остальные 64 бита зарезервированы для экспоненты. Как отмечает Фабьен, вам придется поработать несколько уловок, чтобы добиться большей точности, если вам нужны все 64 бита.
Как отмечают другие, JS реализует двойные значения, поэтому вам придется искать в другом месте, чтобы обрабатывать большие числа. BigInt - это библиотека для вычислений с произвольной точностью для целых чисел.
Параметризованные модули! С http://www.lshift.net/blog/2008/05/18/late-binding-with-erlang и http://www.erlang.se/euc/07/ документы / 1700Carlsson.
Я думаю, вам нужно рассматривать их как строки, если вы достигли предела Javascript ( см. Здесь )