SQLRU.net
Разработка приложений баз данных

Начало » Программирование » Delphi » Округление (Странности Delphi 11)
icon10.gif  Округление [сообщение #4852] Mon, 08 April 2024 18:18 Переход к предыдущему сообщению
sf в настоящее время не в онлайне  sf
Сообщений: 11
Зарегистрирован: July 2023
Junior Member
Народ, есть вот такой код с почти похожими исходными данными для округления:

Writeln(SimpleRoundTo(0.09435, -4));
Writeln(SimpleRoundTo(0.19435, -4));
Writeln(SimpleRoundTo(0.29435, -4));
Writeln(SimpleRoundTo(0.39435, -4));
Writeln(SimpleRoundTo(0.49435, -4));
Writeln(SimpleRoundTo(0.59435, -4));
Writeln(SimpleRoundTo(0.69435, -4));
Writeln(SimpleRoundTo(0.79435, -4));
Writeln(SimpleRoundTo(0.89435, -4));
Writeln(SimpleRoundTo(0.99435, -4));
Спорим, не угадаете, что будет на выходе? Я, например, до сих пор под впечатлением. Вот такой результат ():

9.44000000000000E-0002
1.94300000000000E-0001
2.94300000000000E-0001

3.94400000000000E-0001
4.94400000000000E-0001
5.94400000000000E-0001
6.94400000000000E-0001
7.94400000000000E-0001
8.94400000000000E-0001
9.94400000000000E-0001   

Это, сцука, какое-то новое слово в математике!
А мы тут с народом третий день бъемся, переводим проект на Лазаря и математика не совпадает. Теперь понятно почему. У Лазаря всё как положено:

9.43999999999999999973E-0002
1.94400000000000000005E-0001
2.94400000000000000014E-0001
3.94400000000000000008E-0001
4.94400000000000000003E-0001
5.94400000000000000024E-0001
6.94399999999999999992E-0001
7.94400000000000000014E-0001
8.94399999999999999981E-0001
9.94400000000000000003E-0001

Как дальше жить?
 
Сообщение не прочитано icon10.gif
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Предыдущая тема: не визуализируется прога запущенная в автозагрузке
Следующая тема: F2046 Out of memory
Переход к форуму:
  


Текущее время: Sun Nov 24 02:43:34 GMT+3 2024

Общее время, затраченное на создание страницы: 0.01271 секунд