Тотальная неудачница и убийца жёстких дисков.
#post-id: 7999-04-00
#original-date: 20.06.2022 Mon
#original-time: 4:00 AM
#original-day: 7999
#original-host: WinXP Home SP3 (Build 2600)

Чем больше пытаюсь решить, как округлять числа, тем больше теряюсь в вопросе. Там, блин, целая статья в википедии со всевозможными вариантами округления! И тут бы вспомнить, что там было в школе, но и тут поджидает сюрприз. Если использовать округление к ближайшему целому, то для цифер вроде 69.5 и -69.5 есть ещё куча вариантов округления! И если с положительными я точно уверена, что выбирается вариант от нуля, то с отрицательными, хоть убей, не помню. А ведь начался второй раунд с того, что я нашла в интернетах хороший пример округления на VB до определённого количества цифр после запятой (а не нацело, как везде), ну и решила сравнить с результатами Math.round() в Javasсript. Ну на числе -5.5 и открылась бездна... Моя функция говорила, что это -6, а Javasсript считал, что -5.

https://en.wikipedia.org/wiki/Rounding

Сама функция:



https://stackoverflow.com/questions/647762/automatic-type-conversion-in-visual-basic-6-0/649716#649716

#upd(20.06.2022 - 4:12 AM):

Зашла на ЛитРес в поисках школьного учебника по математике. Скачка не доступна по требованию правообладателя. Правда, правообладателя почему-то не смущает доступность учебника «в приложении».

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

#upd(26.04.2024 - 1:14 PM):

Альзо, мне всегда казалось, что школьные учебники – собственность государства, а следовательно – всего народа. Тобишь бумажную книжку покупать или брать в библиотеке надо, а вот текст в ней копирайтом не облагается.

Комментарии
26.04.2024 в 15:04

We rise up for the things we believe in over and over again
dokipedia.ru/document/5163645?scroll_to=531961e...
Стандарт не делает различий между положительными и отрицательными числами.
26.04.2024 в 22:50

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

Примечание. В тех случаях, когда следует учитывать результаты предыдущих округлений, поступают следующим образом:

1) если отбрасываемая цифра получилась в результате предыдущего округления в большую сторону, то последняя сохраняемая цифра сохраняется;

Пример. Округление до одной значащей цифры числа 0,15 (полученного после округления числа 0,149) дает 0,1.

2) если отбрасываемая цифра получилась в результате предыдущего округления в меньшую сторону, то последняя оставшаяся цифра увеличивается на единицу (с переходом при необходимости в следующие разряды).

Пример. Округление числа 0,25 (полученного в результате предыдущего округления числа 0,252) дает 0,3.


Похоже, они решают подобную задачу, что и банковское округление.
26.04.2024 в 22:52

Тотальная неудачница и убийца жёстких дисков.
2.5. Округление следует выполнять сразу до желаемого количества значащих цифр, а не по этапам.

Хых.
26.04.2024 в 22:54

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

Это больше похоже на неопределённое поведение.
27.04.2024 в 06:24

We rise up for the things we believe in over and over again
похоже на неопределённое поведение
идеал недостижим. Им бы в стандарт ввести всего пару слов "по модулю", ну и формулировочки чуть поправить, и все заиграло бы новыми красками.
27.04.2024 в 13:00

Тотальная неудачница и убийца жёстких дисков.
Тогда придётся писать стандарт про модуль ^^'