powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Непонятка с плавающей точкой
38 сообщений из 38, показаны все 2 страниц
Непонятка с плавающей точкой
    #39256027
cylbps
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребята, растолкуйте что к чему нужно привести, что бы ноль получился:
Код: php
1.
2.
3.
4.
<?php
$val = 7.300 - (73.000 * 0.100);
echo $val;
?>


дает такой результат -8.8817841970013E-16
...
Рейтинг: 0 / 0
Непонятка с плавающей точкой
    #39256030
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://php.net/manual/ru/language.types.float.php Так что никогда не доверяйте точности чисел с плавающей точкой до последней цифры, и не проверяйте напрямую их равенство. Если вам действительно необходима высокая точность, используйте математические функции произвольной точности и gmp-функции. Там же и методика обработки подобных случаев описана.
...
Рейтинг: 0 / 0
Непонятка с плавающей точкой
    #39256033
cylbps
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkle http://php.net/manual/ru/language.types.float.php Так что никогда не доверяйте точности чисел с плавающей точкой до последней цифры, и не проверяйте напрямую их равенство. Если вам действительно необходима высокая точность, используйте математические функции произвольной точности и gmp-функции. Там же и методика обработки подобных случаев описана.
Спасибо!
...
Рейтинг: 0 / 0
Непонятка с плавающей точкой
    #39257124
Фотография volodin661
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cylbps,
а за что спасибо-то?




мне никогда не было понятно,
почему я должен говорить спасибо
за то, что 0.1 + 0.2 не равно 0.3
...
Рейтинг: 0 / 0
Непонятка с плавающей точкой
    #39258006
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
volodin661cylbps,
а за что спасибо-то?




мне никогда не было понятно,
почему я должен говорить спасибо
за то, что 0.1 + 0.2 не равно 0.3

Не надо благодарить. прими как факт :)
А винить в этом надо не компьютер или компилятор, а того, кто решил, что десятичная система оптимальна для счёта (разумеется помним, что 10 именно потому, что у нас 10 пальцев).

Просто не любая конечная десятичная дробь является конечной двоичной дробью (и наоборот).
И дело не в том, что 0.1+0.2!=0.3... дело в том, что 0.1 в двоичной системе уже не получится записать.

Если переводить 0.1 в двоичную систему то:
0.1*2 = 0.2 | 0
0.2*2 = 0.4 | 0
0.4*2 = 0.8 | 0
0.8*2 = 1.6 | 1
0.6*2 = 1.2 | 1
0.2*2 = 0.4 ---> тут бесконечный цикл со второй по пятую операцию

0.1(10) = 0.0[0011](2)
...
Рейтинг: 0 / 0
Непонятка с плавающей точкой
    #39258434
Фотография volodin661
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёрприми как факт


Код: php
1.
perl6 -e 'say 0.1 + 0.2 == 0.3'


True

Два мира - два Шапиро
...
Рейтинг: 0 / 0
Непонятка с плавающей точкой
    #39259269
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
volodin661Програмёрприми как факт


Код: php
1.
perl6 -e 'say 0.1 + 0.2 == 0.3'


True

Два мира - два Шапиро

Код: php
1.
programer@newDebian:~$ php -r 'echo ((string)(0.1+0.2)===(string)0.3);'


Результат: 1 (то есть true)

P.S. Как думаешь, почему?
...
Рейтинг: 0 / 0
Непонятка с плавающей точкой
    #39260057
Фотография volodin661
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,

тебе не заметна разница в написании ?
Код: sql
1.
0.1 + 0.2 == 0.3


и

Код: sql
1.
((string)(0.1+0.2)===(string)0.3)



ПрограмёрРезультат: 1 (то есть true)

а что 1 есть true - это, стало быть, ты мне пояснил ?
...
Рейтинг: 0 / 0
Непонятка с плавающей точкой
    #39260262
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В python, java, php
выражение 0.1 + 0.2 == 0.3 ложное, что там происходит в питоне лично я не знаю, может кто-то пояснит.
...
Рейтинг: 0 / 0
Непонятка с плавающей точкой
    #39260338
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
volodin661Програмёр,

тебе не заметна разница в написании ?
Код: sql
1.
0.1 + 0.2 == 0.3


и

Код: sql
1.
((string)(0.1+0.2)===(string)0.3)



ПрограмёрРезультат: 1 (то есть true)

а что 1 есть true - это, стало быть, ты мне пояснил ?

Итак... посидел, поэкспериментировал, что бы увериться, что я прав.
На пятом перле "print 0.1+0.2==0.3" молчит (то есть выражение ложно)
на шестом перле "print 0.1+0.2==0.3" выводит True

Отсюда вывод, что на шестом перле числа проходят некоторое преобразование, которое не проходили в perl5

проверяем теорию тестом (не стал заморачиваться с подсчётом времени, просто взял значения, при которых разница видна визуально)
запускаем в консоли:
Код: php
1.
php -r '$sum=0; for($i=0; $i<1000000; $i++) {$sum+=$i;}'


ждём меньше половины секунды
Код: plsql
1.
perl6 -e 'my $sum=0; loop (my $i=0; $i < 1000000; $i++) {$sum+=$i;}'


как по мне, дак целая вечность уже прошла

То есть, арифметические операции в perl6 не так просты, и с числами что-то происходит и при этом что-то очень сложное. Как вариант - лишнее приведение типов (и как следствие округление), или же какие-то другие доп. действия.

P.S. для чистоты эксперимента возможно стоило взять perl5 и perl6, но дело в том, что я perl не знаю вообще. А php всегда под рукой и принципы его работы мне более-менее ясны.
...
Рейтинг: 0 / 0
Непонятка с плавающей точкой
    #39260376
Фотография volodin661
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,

в Perl6 короткие числа(до 64bit) с плавающей точкой хранятся как об'ект типа Rational -
в виде пары чисел numerator/denominator (числитель/знаменатель),
что позволяет не страдать от ошибок арифметики плавающей точки.
...
Рейтинг: 0 / 0
Непонятка с плавающей точкой
    #39260390
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
volodin661Програмёр,

в Perl6 короткие числа(до 64bit) с плавающей точкой хранятся как об'ект типа Rational -
в виде пары чисел numerator/denominator (числитель/знаменатель),
что позволяет не страдать от ошибок арифметики плавающей точки.

Я лучше буду "страдать" от того, что у меня 0.1+0.2!=0.3, чем от того, что скорость выполнения обычной арифметической операции падает в 20-30 раз.

P.S. Спасибо разработчикам php за то, что 0.1+0.2 не равно 0.3
P.P.S. Я то могу повлиять на сравнение, просто округлив число там, где это необходимо. А вот ты на быстродействие perl6, думаю, никак повлиять не сможешь.
...
Рейтинг: 0 / 0
Непонятка с плавающей точкой
    #39260394
Фотография volodin661
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: php
1.
2.
3.
4.
5.
time perl6 -e 'my $sum; ++$sum for 1 .. 1_000_000'

real	0m0.783s
user	0m0.752s
sys	0m0.029s



Код: php
1.
2.
3.
4.
5.
time perl6 -e 'my Rat $sum = 1.0; $sum++ for 1 .. 1_000_000'

real	0m12.289s
user	0m11.752s
sys	0m0.503s
...
Рейтинг: 0 / 0
Непонятка с плавающей точкой
    #39260403
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всего лишь в 200 раз?

Код: php
1.
2.
3.
4.
5.
time php -r '$sum = 1.0; for($i = 0; $i < 1000000; $i++) $sum++;'

real    0m0.063s
user    0m0.047s
sys     0m0.012s
...
Рейтинг: 0 / 0
Непонятка с плавающей точкой
    #39260408
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
volodin661
Код: php
1.
2.
3.
4.
5.
time perl6 -e 'my $sum; ++$sum for 1 .. 1_000_000'

real	0m0.783s
user	0m0.752s
sys	0m0.029s



Код: php
1.
2.
3.
4.
5.
time perl6 -e 'my Rat $sum = 1.0; $sum++ for 1 .. 1_000_000'

real	0m12.289s
user	0m11.752s
sys	0m0.503s



Если "++" - это операция инкремента (а скорее всего это так), то твой код делает совсем не то, что я написал :)

Давай уж по честному... ты можешь написать код с тем же функционалом, что и у меня, только с нормальным быстродействием (ну, хотя бы те же 0.8 секунды)?
...
Рейтинг: 0 / 0
Непонятка с плавающей точкой
    #39260409
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что у тебя там за машина такая, что за 12 секунд выполнила?

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
root@dev-01 ~ # time perl6 -e 'my Rat $sum = 1.0; $sum++ for 1 .. 1_000_000'

real    1m0.994s
user    0m59.529s
sys     0m1.311s
root@dev-01 ~ # time php -r '$sum = 1.0; for($i = 0; $i < 1000000; $i++) $sum++;'

real    0m0.472s
user    0m0.052s
sys     0m0.024s
...
Рейтинг: 0 / 0
Непонятка с плавающей точкой
    #39260412
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что-то я неудачный запуск выложил на пыхе, вот:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
root@dev-01 ~ # time php -r '$sum = 1.0; for($i = 0; $i < 1000000; $i++) $sum++;'

real    0m0.043s
user    0m0.039s
sys     0m0.004s
root@dev-01 ~ # time php -r '$sum = 1.0; for($i = 0; $i < 1000000; $i++) $sum++;'

real    0m0.052s
user    0m0.052s
sys     0m0.000s
root@dev-01 ~ # time php -r '$sum = 1.0; for($i = 0; $i < 1000000; $i++) $sum++;'

real    0m0.052s
user    0m0.036s
sys     0m0.016s
...
Рейтинг: 0 / 0
Непонятка с плавающей точкой
    #39260416
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
моя консольprogramer@newDebian:~$ time php -r '$sum=0; for($i=0; $i<1000000; $i++) {$sum+=$i;}'

real 0m0.102s
user 0m0.092s
sys 0m0.008s
programer@newDebian:~$ time perl6 -e 'my $sum; ++$sum for 1 .. 1_000_000'

real 0m5.423s
user 0m5.320s
sys 0m0.108s
programer@newDebian:~$ time perl6 -e 'my Rat $sum = 1.0; $sum++ for 1 .. 1_000_000'

real 0m37.694s
user 0m37.580s
sys 0m0.164s
programer@newDebian:~$ lscpu | grep -i mhz
CPU MHz: 3108.164
programer@newDebian:~$ cat /proc/cpuinfo | grep 'model name' | uniq
model name : Intel(R) Core(TM) i5-4690 CPU @ 3.50GHz



Не впечатлило... у меня уж никак не 0.9 секунды
php5 - 0.1s
"оптимизированный" perl6 - 5.4s
"не оптимизированный" perl6 - 37.7s
...
Рейтинг: 0 / 0
Непонятка с плавающей точкой
    #39260421
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор"оптимизированный" perl6 - 5.4s
В каком месте он оптимизированный то? Там int а не float просто.
...
Рейтинг: 0 / 0
Непонятка с плавающей точкой
    #39260436
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hettавтор"оптимизированный" perl6 - 5.4s
В каком месте он оптимизированный то? Там int а не float просто.

пока ни в каком Просто очень хочу увидеть следующий вариант от volodin661

P.S. В моём примере тоже был int... И это не помешало ему выполняться 20 секунд. Тут всего лишь 5s видимо потому, что используется операция инкремента, а не суммы
...
Рейтинг: 0 / 0
Непонятка с плавающей точкой
    #39260439
Фотография volodin661
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,

задачи впечатлить чем-либо php-кодёра(или програмёра?) я перед собой не ставлю,
моё сообщение было не о секундах, думать о которых не следует свысока ,
а о двух подходах:

первый : человек обслуживает компилятор языка
второй : компилятор обслуживает человека
...
Рейтинг: 0 / 0
Непонятка с плавающей точкой
    #39260450
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
лично я лишь хотел ответить на Ваш вопрос:

volodin661почему я должен говорить спасибо
за то, что 0.1 + 0.2 не равно 0.3
...
Рейтинг: 0 / 0
Непонятка с плавающей точкой
    #39260456
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторИ это не помешало ему выполняться 20 секунд.
Где пример с 20 секундами? оО
...
Рейтинг: 0 / 0
Непонятка с плавающей точкой
    #39260460
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
volodin661Програмёр,

задачи впечатлить чем-либо php-кодёра(или програмёра?) я перед собой не ставлю,
моё сообщение было не о секундах, думать о которых не следует свысока ,
а о двух подходах:

первый : человек обслуживает компилятор языка
второй : компилятор обслуживает человека

и в обоих случаях человек остаётся недоволен

ладно, пора завязывать, всё и так понятно.

P.S. ещё попробовал потестить питон (делал это до появления цитируемого поста). Говорили, что на нём тот же трабл с арифметикой (все числа являются объектами). Не знаю так ли это, но вот результат:
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
programer@newDebian:~$ cat test.py
a=0
for x in range(1,1000000):
    a+=x
print a

programer@newDebian:~$ time python2.7 test.py
499999500000

real	0m0.079s
user	0m0.068s
sys	0m0.008s
...
Рейтинг: 0 / 0
Непонятка с плавающей точкой
    #39260464
Фотография volodin661
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,

я не видел твоих сообщений выше, уж так получилось,
и как ты ответил на мой вопрос про спасибо, кстати ?



( и не надо меня на Вы с большой буквы,
переписка у нас пока неофицальная, расслабьтесь, ребята )
...
Рейтинг: 0 / 0
Непонятка с плавающей точкой
    #39260479
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,

на яве вообще за 5 мс выолняется. Но и питон и ява и пых используют нативные числа с плавающей точкой, а не какие-то структуры.



volodin661,

авторпочему я должен говорить спасибо
потому что он работает весьма оптимально, и если вдруг нужна критическая точность, то в любом ЯП можно найти механизмы для работы с Decimal и отказаться от чисел с плавающей точкой.
...
Рейтинг: 0 / 0
Непонятка с плавающей точкой
    #39260481
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettавторИ это не помешало ему выполняться 20 секунд.
Где пример с 20 секундами? оО

да вот же он

Код: sql
1.
2.
3.
4.
5.
programer@newDebian:~$ time perl6 -e 'my $sum; loop (my $i=0; $i < 1_000_000; $i++) {$sum+=$i;}'

real	0m19.252s
user	0m19.188s
sys	0m0.088s
...
Рейтинг: 0 / 0
Непонятка с плавающей точкой
    #39260486
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettПрограмёр,

на яве вообще за 5 мс выолняется.
Ну конечно. Это же совсем другая "весовая" категория.
...
Рейтинг: 0 / 0
Непонятка с плавающей точкой
    #39260509
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно стало как она справится с decimal:

Код: java
1.
2.
3.
4.
        BigDecimal bd = new BigDecimal("0");
        for(int j = 0; j < 1000000; j++) {
            bd = bd.add(new BigDecimal(j));
        }



72 мс

ну и

Код: java
1.
2.
3.
        BigDecimal i = new BigDecimal("0.1");
        i = i.add(new BigDecimal("0.2"));
        System.out.println(i.equals(new BigDecimal("0.3")));



естестно true
да, приходится "обслуживать" компилятор, но зато скорость...
...
Рейтинг: 0 / 0
Непонятка с плавающей точкой
    #39260520
Фотография volodin661
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,

какую критическая точность от boolean выражения ожидает получить человек,
написавший 0.1 + 0.2 == 0.3 ?

он знает об этом точно,

а что при этом происходит под капотом его не должно тяготить.

Кстати, про капот; на автомобилях раньше был рычажок опережения зажигания
и даже последняя женщина знала, что его надо тащить на себя перед под'ёмом в гору,
а сейчас, скажи честно, тебя сильно беспокоят вопросы тонкостей опережения зажигания внутри двигателя
при изменении условий движения?
...
Рейтинг: 0 / 0
Непонятка с плавающей точкой
    #39260599
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оффтоп:

"рычажок опережения зажигания" ?! оО

Речь о том, что в народе называют "подсос", и что имеет название "регулятор топливной заслонки"?

Я ещё не так стар и может, просто, не застал те времена, когда кроме подсоса в машинах были ещё какие-то рычажки... Но что-то очень сильное ощущение, что речь именно об регуляторе топливной заслонки. Уж я то помню, чего стоит настроить зажигание так, что бы двигатель не давал вибраций, что бы не было ощутимых перебоев и внезапных просадок в оборотах ))) После двухчасовой возни, я бы этот "рычажок" гвоздями приколотил))


теперь по теме:
1. "рычажок" существует для того, что бы его можно было потянуть, или затолкать обратно (то есть включать разные режимы работы). Применимо ли это к обсуждаемому поведению perl6?
2. нынешнее отсутствие "рычажка" обусловлено тем, что автоматика сама определяет оптимальный режим работы. Применимо ли это к обсуждаемому поведению perl6?
...
Рейтинг: 0 / 0
Непонятка с плавающей точкой
    #39260673
Фотография volodin661
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,
подсос оставь в покое,
если дядя пишет про зажигание, значит так оно и есть.
на данный момент втолковать тебе чего бы то ни было не представляется мне возможным,
увы.
...
Рейтинг: 0 / 0
Непонятка с плавающей точкой
    #39260731
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
volodin661Програмёр,
подсос оставь в покое,
если дядя пишет про зажигание, значит так оно и есть.
на данный момент втолковать тебе чего бы то ни было не представляется мне возможным,
увы.

- Как Вы всё успеваете?
- Я просто никогда ни с кем не спорю.
- Но это ведь невозможно!
- Ну не возможно - так невозможно.


...
Ну невозможно - так невозможно :)

----------------------------------------------------------------------------
Програмёр покинул беседу
----------------------------------------------------------------------------
...
Рейтинг: 0 / 0
Непонятка с плавающей точкой
    #39260923
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторесли дядя пишет про зажигание, значит так оно и ест
объясните мне пожалуйста, зачем изменять УОЗ при движении в гору?
рычажок этот нужен был для корректировки опережения зажигания в зависимости от залитого бензина (он так и назывался, октан-корректор).
...
Рейтинг: 0 / 0
Непонятка с плавающей точкой
    #39261221
Фотография volodin661
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett(он так и назывался, октан-корректор).

'октан-корректор' был в 60-х, регулировка осуществлялась поворотом с последующей фиксацией гайкой корпуса прерывателя-распределителя( в добавление к автоматическим (центробежному и вакуумному) корректорам ),
а я говорил про полностью ручное управление зажиганием, которое было вынесено на приборную панель в 20-х - 30-х
( за все пассажирские модели не скажу, но в гоночных точно )

Hettобъясните мне пожалуйста, зачем изменять УОЗ при движении в гору?
при движении в гору сопротивление движению растёт, соответственно обороты ДВС падают, соответственно наполняемость цилиндров смесью изменяется в худшую сторону, смесь сгорает дольше, соответственно нужно корректировать зажигание и поджигать пораньше, чтобы максимальное давление при сгорании смеси пришлось аккурат к верхней мёртвой точке расположения поршня в цилиндре.
...
Рейтинг: 0 / 0
Непонятка с плавающей точкой
    #39261254
Фотография volodin661
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и, возвращаясь к теме, теперь скажите мне,
А) зачем нужны все эти дополнительные знания про зажигание в 21-ом веке, если надо просто ехать ?
Б) зачем нужно помнить, что 0.2 + 0.2 равно 0.4, а 0.1 + 0.2 не равно 0.3,
если тебе надо просто сравнить в 21-ом веке результат арифмет. действий с каким-то значением?
...
Рейтинг: 0 / 0
Непонятка с плавающей точкой
    #39261272
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
volodin661и, возвращаясь к теме, теперь скажите мне,
А) зачем нужны все эти дополнительные знания про зажигание в 21-ом веке, если надо просто ехать ?
Б) зачем нужно помнить, что 0.2 + 0.2 равно 0.4, а 0.1 + 0.2 не равно 0.3,
если тебе надо просто сравнить в 21-ом веке результат арифмет. действий с каким-то значением?Всякому - своё. Простому пользователю калькулятора и автомобиля эти знания, конечно, не нужны. Однако, они потребуются инженеру, конструктору, программисту, которые разрабатывают эти самые автомобили и калькуляторы.
...
Рейтинг: 0 / 0
Непонятка с плавающей точкой
    #39261739
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор'октан-корректор' был в 60-х, регулировка осуществлялась поворотом с последующей фиксацией гайкой корпуса прерывателя-распределителя( в добавление к автоматическим (центробежному и вакуумному) корректорам ),
а я говорил про полностью ручное управление зажиганием, которое было вынесено на приборную панель в 20-х - 30-х
( за все пассажирские модели не скажу, но в гоночных точно )
Октан-корректор только и делал, что изменял ОУЗ. Какое еще полностью ручное управление зажиганием? На
каждый такт сжатия кнопочку нажимать? То, что вы описали в начале поста, это обычная регулировка УОЗ путем вращения трамлера, это никакой не октан корректор. И автоматическая регулировка тоже не имеет большого отношения.

авторпри движении в гору сопротивление движению растёт, соответственно обороты ДВС падают, соответственно наполняемость цилиндров смесью изменяется в худшую сторону, смесь сгорает дольше, соответственно нужно корректировать зажигание и поджигать пораньше, чтобы максимальное давление при сгорании смеси пришлось аккурат к верхней мёртвой точке расположения поршня в цилиндре.

Когда падают обороты ДВС, нужно на более низкую передачу переключаться, а не угол зажигания корректировать. К тому же со снижением числа оборотов в момент времени угол зажигания как раз тоже становится более поздним, а увеличение опережения приведет к ретардам.
Что вы мне сказочки то рассказываете.


авторзачем нужны все эти дополнительные знания про зажигание в 21-ом веке, если надо просто ехать ?
Пример совсем не корректный. Есть инструменты которые требует знаний. Езда на авто это одно, а программирование - это совсем другое.

авторзачем нужно помнить, что 0.2 + 0.2 равно 0.4, а 0.1 + 0.2 не равно 0.3,
если тебе надо просто сравнить в 21-ом веке результат арифмет. действий с каким-то значением?
Как мы уже выяснили на синтетических тестах, затем, чтобы оптимально использовать вычислительные мощности.
...
Рейтинг: 0 / 0
38 сообщений из 38, показаны все 2 страниц
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Непонятка с плавающей точкой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]