powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Округление RoundTo. Непонятно :)
25 сообщений из 55, страница 1 из 3
Округление RoundTo. Непонятно :)
    #35598728
sgec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RoundTo(0.175,-2)=0.17
RoundTo(0.275,-2)=0.28

непонятно
...
Рейтинг: 0 / 0
Округление RoundTo. Непонятно :)
    #35598738
x77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sgec , а что тут непонятного? при "пополамных" вариантах округление происходит в сторону ближайшего чётного числа, и так было всегда.


F1This method rounds to an even number in the case that AValue is not nearer to either value.
...
Рейтинг: 0 / 0
Округление RoundTo. Непонятно :)
    #35598744
sgec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
щас понял ага
...
Рейтинг: 0 / 0
Округление RoundTo. Непонятно :)
    #35598850
Фотография Альт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x77 sgec , а что тут непонятного? при "пополамных" вариантах округление происходит в сторону ближайшего чётного числа, и так было всегда.

это пацанам на vcl5 расскажите ;)
...
Рейтинг: 0 / 0
Округление RoundTo. Непонятно :)
    #35598865
x77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Альтэто пацанам на vcl5 расскажите ;)

в смысле?

Код: plaintext
  ShowMessage (FloatToStr (Round ( 2 . 5 )) + # 13  + FloatToStr (Round( 3 . 5 )));

ответ - 2,4. это и в семёрке также работает.
...
Рейтинг: 0 / 0
Округление RoundTo. Непонятно :)
    #35598868
Фотография Альт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x77Альтэто пацанам на vcl5 расскажите ;)

в смысле?

Код: plaintext
  ShowMessage (FloatToStr (Round ( 2 . 5 )) + # 13  + FloatToStr (Round( 3 . 5 )));

ответ - 2,4. это и в семёрке также работает.

а в пятерке нет
...
Рейтинг: 0 / 0
Округление RoundTo. Непонятно :)
    #35598877
x77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Альт , не знал.... о_О
...
Рейтинг: 0 / 0
Округление RoundTo. Непонятно :)
    #35598886
Фотография Альт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x77 Альт , не знал.... о_О
я до прошлого года тоже z_Z
...
Рейтинг: 0 / 0
Округление RoundTo. Непонятно :)
    #35598911
Фотография Anatoly Podgoretsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sgecRoundTo(0.175,-2)=0.17
RoundTo(0.275,-2)=0.28

непонятно
У тебя не 0,175, а что то близкое к 0,174999999999
...
Рейтинг: 0 / 0
Округление RoundTo. Непонятно :)
    #35598946
x77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что-то теперь мне стало нифига непонятно...

Anatoly Podgoretsky , RoundTo (0.175, -2) = 0.17. фахт.
...
Рейтинг: 0 / 0
Округление RoundTo. Непонятно :)
    #35599002
Фотография Anatoly Podgoretsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тебе верю и более того толкаю тебя верить.

Утверждение 1 - округление происходит в сторону ближайшего чётного числа
Утверждение верное, и поскольку его не происходит, то у тебя не 0.175, а немного меньше, а вот 0.275 строго посредине и округление идет в сторону четного

Утверждение 2 - операция RoundTo не работает с текстами.
Значит текст 0.175 надо преобразовать в число, с какой ни будь точностью (Single/Double/Extended), при преобразовании в ч число происходит ошибка представления, поскольку число 0.175 невозможно представить точно, а только приблизительно, или чуть больше или чуть меньше. По результату видно, что чуть меньше.

Утверждение 3 - если результат куда либо присваивается, то происходит опять же потеря точности, если только это не степень 2 и достаточно маленькое, как например 0.175

Дополнение 1 - все работает правильно поскольку нет присвоения результата функции и ты просто фантазируешь!!! Также нет проверки отношения - вывод тот же.

Дополнение 2 - или ты приводишь нормальный текст (не только присвоение), или говорить не о чем.

Дополнение 2 - ты ничего не читал и не знаешь об особенностях чисел с плавающей запятой.

--
http://www.podgoretsky.com
...
Рейтинг: 0 / 0
Округление RoundTo. Непонятно :)
    #35599005
Фотография Anatoly Podgoretsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дополнение 4 - округление до не целого числа, это фикция, в результате то получается не круглое число.

--
http://www.podgoretsky.com
...
Рейтинг: 0 / 0
Округление RoundTo. Непонятно :)
    #35599209
x77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Podgoretsky , всё это интересно и познавательно, но:

Код: plaintext
1.
2.
3.
4.
5.
 var 
  a: extended;
 begin 
  a :=  0 . 175 ;
  a := RoundTo(a, - 2 );

результат всегда будет 0.17 для любого вещественого типа (дельфийского). мне кажется - что должно быть 0.18. я пока себе это объяснить не могу :)
...
Рейтинг: 0 / 0
Округление RoundTo. Непонятно :)
    #35599315
Фотография Anatoly Podgoretsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты не обяснить не можешь, а понять, хотя тебе все расписали.

--
http://www.podgoretsky.com

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Округление RoundTo. Непонятно :)
    #35599320
x77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Podgoretsky, увы, не могу.
...
Рейтинг: 0 / 0
Округление RoundTo. Непонятно :)
    #35599379
Фотография zirra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я худею, дорогая редакция!!!
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
 program 
  _1;

 {$APPTYPE CONSOLE} 

 uses 
  Windows, SysUtils, Math;

 var 
  a, b: extended;
 begin 
  SetRoundMode(rmNearest);
  a :=  0 . 175 ;
  b := RoundTo(a, - 2 );
  Writeln(a: 10 : 20 , ' : ', b: 10 : 20 );

  SetRoundMode(rmDown);
  a :=  0 . 175 ;
  b := RoundTo(a, - 2 );
  Writeln(a: 10 : 20 , ' : ', b: 10 : 20 );

  SetRoundMode(rmUp);
  a :=  0 . 175 ;
  b := RoundTo(a, - 2 );
  Writeln(a: 10 : 20 , ' : ', b: 10 : 20 );

  SetRoundMode(rmTruncate);
  a :=  0 . 175 ;
  b := RoundTo(a, - 2 );
  Writeln(a: 10 : 20 , ' : ', b: 10 : 20 );
 end .
И её вывод:
Код: plaintext
1.
2.
3.
0.17500000000000000000 : 0.17000000000000001000
0.17499999999999999000 : 0.16999999999999995000
0.17500000000000000000 : 0.18000000000000003000
0.17499999999999999000 : 0.16999999999999995000
...
Рейтинг: 0 / 0
Округление RoundTo. Непонятно :)
    #35599489
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x77> мне кажется - что должно быть 0.18.

Нет. Хотя тут могут быть разные точки зрения.

x77> я пока себе это объяснить не могу :)

Подумай над определением понятия "четность".

zirra > Я худею, дорогая редакция!!!

С чего конкретно ?


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Округление RoundTo. Непонятно :)
    #35599505
Фотография zirra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустамzirra > Я худею, дорогая редакция!!!

С чего конкретно ?Ну, хотя бы с того, что при изменении SetRoundMode меняется результат присвоения переменных... Соответственно, и результат округления разный...
...
Рейтинг: 0 / 0
Округление RoundTo. Непонятно :)
    #35599534
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zirra> при изменении SetRoundMode меняется результат присвоения переменных...

Нет.

zirra> Соответственно, и результат округления разный...

Вот я и говорю - шо удивляет-то? :)
Меня с ходу немного озадачил только
второй результат - пока я не полистал
наверх и не увидел при каких условиях
он был получен.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Округление RoundTo. Непонятно :)
    #35599549
Фотография zirra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам
zirra> при изменении SetRoundMode меняется результат присвоения переменных...

Нет.

zirra> Соответственно, и результат округления разный...

Вот я и говорю - шо удивляет-то? :)
Меня с ходу немного озадачил только
второй результат - пока я не полистал
наверх и не увидел при каких условиях
он был получен. А четвёртый - не удивил?.. %)))
...
Рейтинг: 0 / 0
Округление RoundTo. Непонятно :)
    #35599565
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет.

Я после второго весь код прочитал. :)


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Округление RoundTo. Непонятно :)
    #35599654
Фотография zirra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамЯ после второго весь код прочитал. :) Издеваиссе?.. Какой в гузку - КОД?..
...
Рейтинг: 0 / 0
Округление RoundTo. Непонятно :)
    #35599665
Фотография NextMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то Анатолий рано спать лег.
Точное представление десятичных дробей в двоичной форме - его любимая тема.
...
Рейтинг: 0 / 0
Округление RoundTo. Непонятно :)
    #35599668
Фотография zirra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NextManЧто-то Анатолий рано спать лег.
Точное представление десятичных дробей в двоичной форме - его любимая тема. Вообще-то, да...
Кстати, надысь была ж тема на эту тему... %)
...
Рейтинг: 0 / 0
Округление RoundTo. Непонятно :)
    #35599703
Фотография Anatoly Podgoretsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не сплю, я со стороны смотрю. Я все сказал, можно было бы еще и на
Королевство послать и послал бы, но тут вопрос за пределами тех статей, тут
не понимание, как работает компилятор. Почему A := 0.2 и константа 0,2 это
разные числа, я уже сказал, но что делать если нет понимания с той стороны.

--
http://www.podgoretsky.com

Что-то Анатолий рано спать лег.
Точное представление десятичных дробей в двоичной форме - его любимая тема.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
25 сообщений из 55, страница 1 из 3
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Округление RoundTo. Непонятно :)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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