티스토리 뷰

The lexically scoped integer pragma forces Perl to use integer arithmetic in its scope:

print 3.0/2.1 . "\n";    # => 1.42857142857143
{
  use integer;
    print 3.0/2.1 . "\n";  # => 1
    }
    print 3.0/2.1 . "\n";    # => 1.42857142857143
    
-------------------

You can cast ints in Perl:

int(5/1.5) = 3;
-------------------

int(x+.5)반올림합니다 긍정적 가장 가까운 정수를 향해 값을. 반올림이 더 어렵습니다.

0으로 반올림하려면 :

int($x)

아래 솔루션의 경우 다음 설명을 포함하십시오.

use POSIX;

내림하려면 : POSIX::floor($x)

반올림하려면 : POSIX::ceil($x)

0에서 반올림하려면 : POSIX::floor($x) - int($x) + POSIX::ceil($x)

가장 가까운 정수로 반올림하려면 : POSIX::floor($x+.5)

int($x+.5)음의 값을 심하게 실패합니다. int(-2.1+.5)int(-1.6)-1입니다.

-------------------

다음을 수행 할 수 있습니다.

use integer;

Michael Ratanapintha가 설명하거나 수동으로 사용하십시오.

$a=3.7;
$b=2.1;

$c=int(int($a)/int($b));

'int'는 캐스팅되지 않습니다. 숫자를 정수 형태로 변환하는 기능입니다. 이는 Perl 5에 별도의 정수 분할이 없기 때문입니다. 예외는 '정수를 사용'하는 경우입니다. 그러면 실제 분열을 잃게됩니다.

-------------------

작동하기를 바랍니다.

int (9/4) = 2.

감사합니다 Manojkumar

-------------------

정수 나누기 $ x를 $ y로 나눈 값 ...

$z = -1 & $x / $y

어떻게 작동합니까?

$x / $y

부동 소수점 나누기 반환

&

비트 AND 수행

-1

약자

&HFFFFFFFF

가장 큰 정수 ... whence

$z = -1 & $x / $y

정수 나눗셈을 제공합니다 ...

-------------------

예 : 9/4 = 2.25

int (9) / int (4) = 2

9/4-나머지 / 데니 네이터 = 2

9/4-9 % 4/4 = 2



출처
https://stackoverflow.com/questions/1903170
댓글
공지사항
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31