Форум: "Начинающим";
Текущий архив: 2009.04.26;
Скачать: [xml.tar.bz2];
ВнизРеал и матем. функции. Найти похожие ветки
← →
AlexDan © (2009-03-10 19:39) [0]Вот такое выражение равно 1-це.
chb:real; chb:=1.2;
abs(frac(chb/0.6))
Вроде должен быть 0?, насколько я понимаю..?.
← →
AlexDan © (2009-03-10 19:42) [1]Случайно при пошаговой отладке обнаружил(.
← →
AlexDan © (2009-03-10 20:36) [2]Глюк мат. функций?, по моему я что-то вроде в ТР встречал как-то.
← →
Юрий Зотов © (2009-03-10 20:39) [3]1.2/0.6 не равно 2.0, потому что 0.6 степенью двойки не является.
← →
Amoeba © (2009-03-10 22:53) [4]Автору вопроса читать до полного просветления, дабы таких вопросов более не возникало:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=374
← →
Palladin © (2009-03-11 08:09) [5]Автору вопроса уже давали эту ссылку. Дважды. Но он сказал не учите меня жить помогите материально.
← →
Amoeba © (2009-03-11 11:05) [6]
> Palladin © (11.03.09 08:09) [5]
>
> Автору вопроса уже давали эту ссылку. Дважды. Но он сказал
> не учите меня жить помогите материально.
Ну что ж, больше не буду метать бисер.
← →
AlexDan © (2009-03-11 22:34) [7]Тут дело не в бисере). Теорию я конечно в общих чертах представляю. Вопрос здесь и не только стоял более практический. Т.е. такой подход:
if frac(b/3)=0 then.., где b,-real считаю надёжным, т.е. рабочим.
if frac(b/0.6)=0 then..,- считаю нерабочим, т.к. равенство нулю не выполнится никогда. Вот я и спрашивал, чем можно второй подход заменить. Мне пришлось просто заменить его на другой алгоритм, потому как к другим функциям или формулам перейти нельзя видимо.
← →
Германн © (2009-03-12 00:09) [8]
> Теорию я конечно в общих чертах представляю. Вопрос здесь
> и не только стоял более практический. Т.е. такой подход:
>
> if frac(b/3)=0 then.., где b,-real считаю надёжным, т.е.
> рабочим.
Фигово представляешь. Вещественные числа НИКОГДА нельзя сравнивать на строгое равенство! Ни в математике ни, тем более в программировании.
← →
Anatoly Podgoretsky © (2009-03-12 00:54) [9]> Германн (12.03.2009 0:09:08) [8]
Можно и там и там.
← →
Германн © (2009-03-12 01:17) [10]
> Anatoly Podgoretsky © (12.03.09 00:54) [9]
>
> > Германн (12.03.2009 0:09:08) [8]
>
> Можно и там и там.
>
Нельзя ни там, ни там!
Имею мнение, попробуй оспорить!
← →
Тын-Дын © (2009-03-12 01:36) [11]
> Anatoly Podgoretsky © (12.03.09 00:54) [9]
> > Германн (12.03.2009 0:09:08) [8]Можно и там и там.
Абсолютно точно-)
← →
Германн © (2009-03-12 01:38) [12]
> Тын-Дын © (12.03.09 01:36) [11]
>
>
> > Anatoly Podgoretsky © (12.03.09 00:54) [9]
> > > Германн (12.03.2009 0:09:08) [8]Можно и там и там.
>
>
>
> Абсолютно точно-)
>
Ну попробуй, оспорь.
← →
Тын-Дын © (2009-03-12 01:41) [13]
> Германн © (12.03.09 01:38) [12]
> > Тын-Дын © (12.03.09 01:36) [11]> > > > Anatoly Podgoretsky
> © (12.03.09 00:54) [9]> > > Германн (12.03.2009 0:09:
> 08) [8]Можно и там и там.> > > > Абсолютно точно-)> Ну
> попробуй, оспорь.
Это ты попробуй.
Кто сказал, что нельзя сравнивать?
← →
Германн © (2009-03-12 01:44) [14]
> Кто сказал, что нельзя сравнивать?
Ты пьян, или ...
Это я сказал.
Хм.
Ты вообще с кем разговариваешь?
← →
Тын-Дын © (2009-03-12 01:52) [15]
> Германн © (12.03.09 01:44) [14]
> > Кто сказал, что нельзя сравнивать?Ты пьян, или ... Это
> я сказал. Хм. Ты вообще с кем разговариваешь?
А ты что, авторитет в некоторых кругах?
Кто мне может запретить сравнивать?
← →
Германн © (2009-03-12 02:09) [16]
> Тын-Дын © (12.03.09 01:52) [15]
>
>
> > Германн © (12.03.09 01:44) [14]
> > > Кто сказал, что нельзя сравнивать?Ты пьян, или ... Это
> > я сказал. Хм. Ты вообще с кем разговариваешь?
>
>
> А ты что, авторитет в некоторых кругах?
>
> Кто мне может запретить сравнивать?
>
Никто не может тебе запретить ничто! Но пить, надо меньше! Это уже совет именно к тебе!
← →
AlexDan © (2009-03-12 02:15) [17]Германн прав, я только что как раз это всё прогнал:
if frac(a/b)=0 then.. можно, где a,b:real,
if frac(a/0.6)=0 then.. нельзя. Причём if frac(a/3)=0 then.. можно.
← →
Германн © (2009-03-12 02:24) [18]
> AlexDan © (12.03.09 02:15) [17]
>
> Германн прав, я только что как раз это всё прогнал:
Ну спасибо.
Но прав не Германн. Права наука!
← →
AlexDan © (2009-03-12 02:34) [19]Хотя, если честно, понять сложно, почему
if frac(a/0.6)=0 then.. нельзя
if frac(a/3)=0 then.. можно. Наверно представление чисел, я на этот счёт толком ничего не читал..)
← →
Германн © (2009-03-12 02:56) [20]
> AlexDan © (12.03.09 02:34) [19]
>
> Хотя, если честно, понять сложно, почему
> if frac(a/0.6)=0 then.. нельзя
> if frac(a/3)=0 then.. можно. Наверно представление чисел,
> я на этот счёт толком ничего не читал..)
>
Ну может наконец-то почитаешь что-нибудь!
Или ты совсем "пустой нуль"?
← →
Германн © (2009-03-12 02:58) [21]
> if frac(a/3)=0 then.. можно.
Ну не можно!
Тебе где-то повезло.
← →
Anatoly Podgoretsky © (2009-03-12 07:44) [22]> Германн (12.03.2009 1:38:12) [12]
Зачем бить головой об стену.
← →
korneley © (2009-03-12 08:20) [23]Ну вы на ровном месте битву развернули! :))) Автор же пишет "Наверно представление чисел, я на этот счёт толком ничего не читал" И это после, как минимум, трёх (!) выданных ему ссылок на статью.
А сравнивать на равенство, конечно, никто не запрещает. Вот только результат может удивить :)
← →
Anatoly Podgoretsky © (2009-03-12 08:46) [24]> korneley (12.03.2009 8:20:23) [23]
А может быть единственно верным.
Ветка познавательная - о вреде догматов.
← →
Григорьев Антон © (2009-03-12 09:54) [25]В ряде частных случаев вещественные числа сравнивать операцией "=" вполне можно. Например, банальная проверка является ли число квадратом целого: if Fraq(Sqrt(X)) = 0 ... вполне работоспособна.
← →
korneley © (2009-03-12 11:08) [26]
> Григорьев Антон © (12.03.09 09:54) [25]
> В ряде частных случаев...
Так и я о том. Знать надо, что и для чего лепишь. "Чтобы не было мучительно больно за..." (с) :) У автора другая проблема: читать/учиться не желает, но выдвигает "смелые" гипотезы, как в [2]. Уж не знаю, что с ним будет, когда он случайно обнаружит, чтоround(1.5) = round(2.5)
← →
Palladin © (2009-03-12 11:14) [27]
> korneley © (12.03.09 11:08) [26]
ну зачем ты это сказал... ведь всю жизь человеку испортил :)
← →
Ega23 © (2009-03-12 11:18) [28]
> Уж не знаю, что с ним будет, когда он случайно обнаружит,
> что round(1.5) = round(2.5)
Гм... Я в этих делах не шибко силён, но, ЕМНИП - не всегда. Там же можно как-то алгоритм округления выбирать? Или я "с прямым углом спутал" (с)?
← →
korneley © (2009-03-12 11:27) [29]
> Ega23 © (12.03.09 11:18) [28]
> Там же можно как-то алгоритм округления выбирать?
"This method of rounding is often called "Banker’s Rounding". А стало быть, при равноудалённости, до ближайшего чётного ;) Правда,SetRoundMode()
, тоже никто не отменял :)))
← →
Игорь Шевченко © (2009-03-12 11:30) [30]Германн © (12.03.09 01:44) [14]
> Ты пьян, или ...
> Это я сказал.
>
> Хм.
> Ты вообще с кем разговариваешь?
Есть предложение не писать таких постов. Во-первых, оффтопик, во-вторых троллизм, в-третьих, элементарная невежливость.
← →
Palladin © (2009-03-12 11:31) [31]
> Ega23 © (12.03.09 11:18) [28]
Если ты имеешь в виду это:SetRoundMode(rmNearest);
Memo1.Lines.Add("rmNearest:"+BoolToStr(round(1.5) = round(2.5),True));
SetRoundMode(rmDown);
Memo1.Lines.Add("rmDown:"+BoolToStr(round(1.5) = round(2.5),True));
SetRoundMode(rmUp);
Memo1.Lines.Add("rmUp:"+BoolToStr(round(1.5) = round(2.5),True));
SetRoundMode(rmTruncate);
Memo1.Lines.Add("rmTruncate:"+BoolToStr(round(1.5) = round(2.5),True));
то боюсь тебя разочаровать :)
← →
Ega23 © (2009-03-12 11:31) [32]
> Правда, SetRoundMode(), тоже никто не отменял :)))
Во, я помню что что-то такое было!
← →
Ega23 © (2009-03-12 11:34) [33]
> то боюсь тебя разочаровать :)
Не знаю, я (тьфу-тьфу-тьфу) из всех округлений только
CREATE PROCEDURE S_GetDayTime
@DateTime datetime=0,
@Date datetime=0 output,
@Time datetime=0 output,
@DateTimeStr varchar(32)="" output,
@Debug int=-1
AS
set nocount on
Set @Date=cast( Floor(cast(@DateTime as numeric(18,12))) as datetime)
Set @Time=@DateTime-@Date
set @DateTimeStr=convert(char(10),@DateTime,104)+" "+convert(char(5),@DateTime,108)
GO
использовал... :)
← →
Palladin © (2009-03-12 11:36) [34]Удалено модератором
Примечание: дубль
← →
Германн © (2009-03-13 01:08) [35]
> Игорь Шевченко © (12.03.09 11:30) [30]
Принято.
Больше такого не будет.
Прошу извинения у всех, кого я "нечаянно обидел". Честное слово, нечаянно!
Был вчера "несколько не в себе" под влиянием медицинских препаратов. Простудился, блин. А жена моя, врач мой, начала меня лечить! :(
> Тын-Дын © (12.03.09 01:41) [13]
>
>
> > Германн © (12.03.09 01:38) [12]
> > > Тын-Дын © (12.03.09 01:36) [11]> > > > Anatoly Podgoretsky
> > © (12.03.09 00:54) [9]> > > Германн (12.03.2009 0:09:
>
> > 08) [8]Можно и там и там.> > > > Абсолютно точно-)> Ну
> > попробуй, оспорь.
>
>
> Это ты попробуй.
Попробую.
Искусственные ситуации, в которых мы можем сравнивать результат математических функций, в которых параметрами являются вещественные числа, или результат этих функций является вещественным числом (это уже относится не к математике, а к программированию) легко создать.
> Григорьев Антон © (12.03.09 09:54) [25]
Но это искусственные примеры, которые были созданы "наоборот". В таком примере, нет никакого смысла проверять его результат!.
А в реальной задаче (программе) проверять "строгое" равенство - по крайней мере неумно.
Это в "общем случае". Каким и является сабж.
P.S. Надеюсь автор сабжа наконец начнёт читать и думать.
← →
AlexDan © (2009-03-13 21:03) [36]> Германн © (13.03.09 01:08) [35]
> P.S. Надеюсь автор сабжа наконец начнёт читать и думать.
Будем надеяться..:)). AlexDan/
← →
Amoeba © (2009-03-13 22:33) [37]Верится с трудом
← →
AlexDan © (2009-03-14 00:10) [38]> Amoeba © (13.03.09 22:33) [37]
А у меня гуппи редкие вывелись случайно, зелёные кобры. Это я Вам как гидробиологу говорю). Красивые заразы, говорят дорого стоят, не знаю куда их девать..(. Множаться потихоньку..
← →
Тын-Дын © (2009-03-14 00:27) [39]
> Германн © (13.03.09 01:08) [35]
>Попробую.Искусственные ситуации, в которых
> мы можем сравнивать результат математических функций, в
> которых параметрами являются вещественные числа, или результат
> этих функций является вещественным числом (это уже относится
> не к математике, а к программированию) легко создать.
В основном результыты математических вычислений совершенно спокойно можно сравнивать между собой, так как, в отличие от методов вычислений, используемых в вычислительной технике, в математике результат вычислений (при получении точных промежуточных результатов - где это возможно), является во множестве случаев конечным числом.
Всё зависит от цели сравнения.
Поэтому говорить, что нельзя сравнивать вещественные числа на равенство - неверно. И неверно даже в общем случае.
← →
Германн © (2009-03-14 00:50) [40]
> Тын-Дын © (14.03.09 00:27) [39]
>
>
> > Германн © (13.03.09 01:08) [35]
> >Попробую.Искусственные ситуации, в которых
> > мы можем сравнивать результат математических функций,
> в
> > которых параметрами являются вещественные числа, или результат
> > этих функций является вещественным числом (это уже относится
> > не к математике, а к программированию) легко создать.
>
>
> В основном результыты математических вычислений совершенно
> спокойно можно сравнивать между собой, так как, в отличие
> от методов вычислений, используемых в вычислительной технике,
> в математике результат вычислений (при получении точных
> промежуточных результатов - где это возможно), является
> во множестве случаев конечным числом.
>
> Всё зависит от цели сравнения.
> Поэтому говорить, что нельзя сравнивать вещественные числа
> на равенство - неверно. И неверно даже в общем случае.
>
Во-первых, я говорил именно о "строгом" равенстве. Причём при сравнении некоего результата с некоей константой. (Как и было в сабже).
Во-вторых, я всё таки имел в виду скорее физику, чем математику. (У меня диплом именно физика).
В-третьих, Моё "БЕЗАПЕЛЛЯЦИОННОЕ" (постарался указать почти все "выделения", которые я в нём использовал :) высказывание в [8] было вызвано теми причинами, за которые я уже принёс свои извинения в [35].
И, наконец. В-четвёртых. Уже много на сём форуме видел вопросов, в которых авторы удивлялись "почему не срабатывает" подобное сравнение. Поэтому и попробовал наставить автора на путь истинный таким "громогласным" образом. (Типа "шоковой терапии" :).
Надеюсь, что "пронял" автора :)
P.S. В-пятых меня смутил АП.
Чтоб ему пусто было :)
Страницы: 1 2 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.04.26;
Скачать: [xml.tar.bz2];
Память: 0.56 MB
Время: 0.007 c