저는 Number 타입의 변수를 가지고 있고, 기호를 얻고 싶습니다 ('-'는 -1을 갖고 싶고 '+'는 1을 갖고 싶습니다.). 그래서, 나는 이것을 만들었습니다 :ActionScript 3.0에서 숫자 기호를 얻는 방법은 무엇입니까?
var sign = Math.abs(n)/n;
그러나 다른 방법이 있습니까? 이보다 나은가요?
var sign = n < 0 ? -1 : 1;
저는 Number 타입의 변수를 가지고 있고, 기호를 얻고 싶습니다 ('-'는 -1을 갖고 싶고 '+'는 1을 갖고 싶습니다.). 그래서, 나는 이것을 만들었습니다 :ActionScript 3.0에서 숫자 기호를 얻는 방법은 무엇입니까?
var sign = Math.abs(n)/n;
그러나 다른 방법이 있습니까? 이보다 나은가요?
var sign = n < 0 ? -1 : 1;
당신은 문제가 될 수 있습니다.
또한이 작업을 수행 할 수 있습니다 :
var sign = (n>=0)?1:-1;
을 ternary operator로 알려진 것을 사용하여 n 개의 == 0 ... 어떻게 약이 경우
n이 0이면 오류가 발생합니다.
무력 방법 : 전화 번호는 31 비트에 들어가는 경우
이function sign(num) {
return (num > 0) ? 1 : ((num < 0) ? -1 : 0);
}
나는 두 번째 접근법을 좋아하는데, 훨씬 더 깨끗하며 n이 0 일 가능성을 다룬다. –
0의 부호는 + 0이 아니므로 : return (num <0)? -1 : 1; 답변 해 주셔서 감사합니다. –
다음 사용할 수 있습니다 : 조건 연산자에 대한 사랑은 그들을위한
function sign(num) {
if(num > 0) {
return 1;
} else if(num < 0) {
return -1;
} else {
return 0;
}
}
또는
var sign = 1 + 2*(n >> 31);
이것이 더 빨라지면 흥미로울 것입니다! 내가 물려받은 코드에서
발췌문 :
function getSign(number:int):int {
var tmp:String = new String(number);
if (tmp.indexOf(0) == '-') {
return -1;
}
return 1;
}
PS :이 코드를 사용하지 마십시오. 내가 이것을 사용 농담
입니다 :
return (number < 0 && -1) || 1;
// n은 전화 번호의 전화 번호 // nSign = 기호
nSign = Math.round (으로, Math.sin (N) *-1);
/* Math.sin은 -1과 1 사이의 숫자를 반환합니다. 비 DEC 수를 얻으려면 반올림해야합니다. 그 번호는 귀하의 번호와 반대입니다. 나를 이길,
댕 - (1에서는, Math.sin (/ N /) *) -1 */
// 아니면 그냥이
Math.round을 할 수하여 곱 15 초 : P – davr
감사합니다, jaja .. 나는 n == 0에 대해 생각하지 않았습니다. : P –
이것은 아름다운 코드 조각입니다. –