Size: a a a

2021 February 10

О

Оскар in Modern::Perl
ну, было сказано что int не работает, значит рассматривался как вариант и он бы устроил
источник

AP

Anton Petrusevich in Modern::Perl
 perl -E '$a += 0.1 for 1 .. 10; say int $a; say $a'
0
1
источник

AP

Anton Petrusevich in Modern::Perl
int не округляет, он отбрасывает дробную часть, при чём в "бинарном" виде, то есть, когда число в плавучке только приблизительно равно тому, чему ты думаешь и может оказаться на погрешность, которая, к примеру, в 17й цифре после точки, меньше того, что ты думаешь
источник

AP

Anton Petrusevich in Modern::Perl
поэтому нельзя плавучку использовать в качестве типа для денег.
источник

AP

Anton Petrusevich in Modern::Perl
Dmitriy Momotyuk
ого, а чем?
интересно
я ответил на твой вопрос?
источник

DM

Dmitriy Momotyuk in Modern::Perl
Anton Petrusevich
я ответил на твой вопрос?
да, спасибо
источник

AP

Anton Petrusevich in Modern::Perl
для понимания реальности:
$ perl -E '$a += 0.1 for 1 .. 10; say int $a; say $a; say sprintf "%.18f", $a'
0
1
0.999999999999999889
источник

AP

Anton Petrusevich in Modern::Perl
Иван
int не работает и POSIX тоже
можно воспользоваться математикой, типа такого:
$ perl -E '$a += 0.1 for 1 .. 10; say int ($a + 0.5)'
1
источник

И

Иван in Modern::Perl
о действительно работает
источник

AP

Anton Petrusevich in Modern::Perl
Иван
о действительно работает
если очень важна точность округления, то я бы взял sprintf
источник

И

Иван in Modern::Perl
но суть в том что я выводил чтобы понаблюдать за результатом, а на деле мне нужно присвоить целое рандомное значение переменной
источник

S

Sasha Murzin in Modern::Perl
Anton Petrusevich
для понимания реальности:
$ perl -E '$a += 0.1 for 1 .. 10; say int $a; say $a; say sprintf "%.18f", $a'
0
1
0.999999999999999889
как этот сайт называется? как раз об этом - с примерами на разных языках

bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
scale=64
2/3*3
1.9999999999999999999999999999999999999999999999999999999999999998
источник

VG

Vadim Goncharov in Modern::Perl
для рандома и int() сгодитсчя
источник

SZ

Sergey Zhmylove in Modern::Perl
Vadim Goncharov
для рандома и int() сгодитсчя
++
источник

AP

Anton Petrusevich in Modern::Perl
Sasha Murzin
как этот сайт называется? как раз об этом - с примерами на разных языках

bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
scale=64
2/3*3
1.9999999999999999999999999999999999999999999999999999999999999998
вот-вот. и разница с реальной 2 очень мала
источник

SZ

Sergey Zhmylove in Modern::Perl
А зачем этот странный код?
источник

AP

Anton Petrusevich in Modern::Perl
ну теперь мы знаем, что у него убунта с очень маленьким экраном
источник

И

Иван in Modern::Perl
Sergey Zhmylove
А зачем этот странный код?
Я пищу скрипт который шифрует сообщения в набор чисел, который по задумке можно расшифровать только имея специальный ключ из чисел. Использую time() и формулу под ним для более менее сносного рандомера который позволит сделать сам шифр и ключ уникальным и даже если зашифровать одно и то же слово оно будет выглядеть по разному
источник

И

Иван in Modern::Perl
но почемуто скрипт не работает и сейчас я тестирую код по кускам ища ошибку
источник

AP

Anton Petrusevich in Modern::Perl
при старте перл рандомизирует сид и так. нужны реально рандомные числа — есть модуль https://metacpan.org/pod/Math::Random
источник