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

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


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

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

в смысле?

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

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

в смысле?

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

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

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

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

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

Утверждение 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
16.10.2008, 17:33:19
    #35599005
Anatoly Podgoretsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округление RoundTo. Непонятно :)
Дополнение 4 - округление до не целого числа, это фикция, в результате то получается не круглое число.

--
http://www.podgoretsky.com
...
Рейтинг: 0 / 0
16.10.2008, 18:55:26
    #35599209
x77
x77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округление RoundTo. Непонятно :)
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
16.10.2008, 20:09:02
    #35599315
Anatoly Podgoretsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округление RoundTo. Непонятно :)
Ты не обяснить не можешь, а понять, хотя тебе все расписали.

--
http://www.podgoretsky.com

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
16.10.2008, 20:13:02
    #35599320
x77
x77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округление RoundTo. Непонятно :)
Anatoly Podgoretsky, увы, не могу.
...
Рейтинг: 0 / 0
16.10.2008, 21:03:29
    #35599379
zirra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округление RoundTo. Непонятно :)
Я худею, дорогая редакция!!!
Код: 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
16.10.2008, 22:39:34
    #35599489
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округление RoundTo. Непонятно :)
x77> мне кажется - что должно быть 0.18.

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

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

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

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

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


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

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

Нет.

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

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


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

Нет.

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

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

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


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

--
http://www.podgoretsky.com

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

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


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