Size: a a a

2019 December 17

IB

Ivan Bessarabov in Modern::Perl
Ilya Chesnokov
Он сравнительно недавно появился, емнип.
POSIX::trunc появился в 5.22, POSIX::lround в 5.24
источник

IB

Ivan Bessarabov in Modern::Perl
В итоге получается вот так
источник

IB

Ivan Bessarabov in Modern::Perl
источник

b

basiliscos in Modern::Perl
?
источник

b

basiliscos in Modern::Perl
это разные способы округления
источник

IB

Ivan Bessarabov in Modern::Perl
Ага. В строке результат применения кода к числам из заголовка
источник

IB

Ivan Bessarabov in Modern::Perl
Не вижу разницы между тем как работает POSIX::trunc($x) и int($x)
И не вижу разницы между тем POSIX::lround($x) и sprintf('%.0f', $x)
источник

IB

Ivan Bessarabov in Modern::Perl
источник

b

basiliscos in Modern::Perl
Ivan Bessarabov
Не вижу разницы между тем как работает POSIX::trunc($x) и int($x)
И не вижу разницы между тем POSIX::lround($x) и sprintf('%.0f', $x)
lround : double -> int
sprintf: double -> string . Это форматилка
источник

b

basiliscos in Modern::Perl
кроме того, важно sprintf хард-кодед политика около нулей
источник

b

basiliscos in Modern::Perl
а для round она вроде как задаётся ( см. https://en.cppreference.com/w/cpp/numeric/math/round )
источник

IB

Ivan Bessarabov in Modern::Perl
Спасибо
источник

IB

Ivan Bessarabov in Modern::Perl
Ilya Chesnokov
Мне тут понадобилось недавно округление до N-го десятичного знака - для этого есть Math::Round::nearest() - правда, уже не из коробки.
А чего не как-нибудь так?
источник

IB

Ivan Bessarabov in Modern::Perl
@PerlBanjoBot use Math::Trig; foreach my $n (0..5) { printf "%.${n}f\n", pi(); }
источник

P

PerlBanjoBot in Modern::Perl
Ivan Bessarabov
@PerlBanjoBot use Math::Trig; foreach my $n (0..5) { printf "%.${n}f\n", pi(); }
3
3.1
3.14
3.142
3.1416
3.14159
https://PerlBanjo.com/efa10c8b89
источник

IC

Ilya Chesnokov in Modern::Perl
Интересное предложение. Спасибо. Надо посмотреть на перформанс.
источник

IB

Ivan Bessarabov in Modern::Perl
А тебе важна скорость работы?
источник

IC

Ilya Chesnokov in Modern::Perl
да
источник

IC

Ilya Chesnokov in Modern::Perl
Но вообще sprintf побеждает ))
источник

IC

Ilya Chesnokov in Modern::Perl
Хотя не, зависит от аргументов.
источник