## 7 Answers

Reset to default

# Trending sort

**Trending** sort is based off of the default sorting method — by highest score — but it boosts votes that have happened recently, helping to surface more up-to-date answers.

It falls back to sorting by highest score if no posts are trending.

There are at least 2 reasonable answers to this question. (I originally gave only answer 2.)

Use the

`int()`

function to truncate the floating-point calculation result to an integer (throwing away the decimal part), as Bryan suggested in his self-answer: #539805Use the

`use integer`

pragma to make Perl truncate*both*the inputs and results of calculations to integers. It’s scoped to within`{ }`

blocks.

Examples:

```
print 3.0/2.1 . "\n"; # => 1.42857142857143
print 5.0/1.5 . "\n"; # => 3.33333333333333
print int(3.0/2.1) . "\n"; # => 1
print int(5.0/1.5) . "\n"; # => 3
{
use integer;
print 3.0/2.1 . "\n"; # => 1
print 5.0/1.5 . "\n"; # => 5 (because 1.5 was truncated to 1)
}
print 3.0/2.1 . "\n"; # => 1.42857142857143 again
```

6

You can cast ints in Perl:

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

7

`int(x+.5)`

will round *positive* values toward the nearest integer. Rounding up is harder.

To round toward zero:

`int($x)`

For the solutions below, include the following statement:

`use POSIX;`

To round down: `POSIX::floor($x)`

To round up: `POSIX::ceil($x)`

To round away from zero: `POSIX::floor($x) - int($x) + POSIX::ceil($x)`

To round off to the nearest integer: `POSIX::floor($x+.5)`

Note that `int($x+.5)`

fails badly for negative values. `int(-2.1+.5)`

is `int(-1.6)`

, which is -1.

2

you can:

```
use integer;
```

it is explained by Michael Ratanapintha or else use manually:

```
$a=3.7;
$b=2.1;
$c=int(int($a)/int($b));
```

notice, ‘int’ is not casting. this is function for converting number to integer form.

this is because Perl 5 does not have separate integer division. exception is when you ‘use integer’. Then you will lose real division.

Hope it works

int(9/4) = 2.

Thanks

Manojkumar

Integer division $x divided by $y …

`$z = -1 & $x / $y`

How does it work?

`$x / $y`

return the floating point division

`&`

perform a bit-wise AND

`-1`

stands for

`&HFFFFFFFF`

for the largest integer … whence

`$z = -1 & $x / $y`

gives the integer division …

1

Eg

9 / 4 = 2.25

int(9) / int(4) = 2

9 / 4 – remainder / deniminator = 2

9 /4 – 9 % 4 / 4 = 2

2

63