|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
в таблице на скриншоте поле R -- ключевое. Разницу значений покажу в первом комментарии (словами: она ~3.33Е-16) Кстати, Debug.Print отображает эти значения также, как их видно на картинке. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2022, 21:34 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2022, 21:36 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 07:30 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
Панург, естественно, я обсуждаю отображение числа без форматирования. То есть, типа, полное. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 11:25 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
Иван FXS, не бывает отображения числа без форматирования . Увидеть то, что вы называете "полным" видом в строковом виде, отформатированном в виде числа для человеческого глаза нельзя. Но вы можете завести двоичное поле на 8 байт с типом binary, записать туда свои числа, и уже после этого разглядывать разницу в их двоичных представлениях. PS Это странно - с упорством, достойным лучшего применения, из года в год заводить топики одной и той же степени удивления по части разницы между хранимым и отображаемым представлением числа, и прочих их особенностях. Уже выберите время, и освойте тему фундаментально, раз она имеет для вас значение. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 12:19 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
booby из года в год заводить топики одной и той же степени удивления по части разницы между хранимым и отображаемым представлением числа PS. Но да, я в самом деле уже понял в чём тут заковыка. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 12:30 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
Ключевое поле...плавающая точка-сильно,однако Стесняюсь спросить: а ЗАЧЕМ двойное с плавающей точкой-Вы хотите в таблице описать все звезды вселенной? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 12:33 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
booby не бывает отображения числа без форматирования А также команду "Debug.Print x" в коде... Иван FXS booby из года в год заводить топики одной и той же степени удивления по части разницы между хранимым и отображаемым представлением числа PS. Но да, я в самом деле уже понял в чём тут заковыка. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 12:35 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
sdku Ключевое поле...плавающая точка-сильно,однако Стесняюсь спросить: а ЗАЧЕМ двойное с плавающей точкой-Вы считаете количество звезд во вселенной? Да и для звезд оно не особо то и подходит. :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 12:38 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
sdku, я проверял коллизии в самопальном ДСЧ. На 40-с-чем-то миллионном напоролся вот на это. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 12:38 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
Иван FXS sdku, я проверял коллизии в самопальном ДСЧ. На 40-с-чем-то миллионном напоролся вот на это. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 12:45 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
Иван FXS ну, если ... то да, не бывает. Без если и то - просто НЕ БЫВАЕТ , никогда, потому что не может быть Иван FXS пропущено... --вы точно ни с кем меня не путаете? точно не путаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 12:46 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
sdku, на то, что Debug.Print R выдал мне как-бы-значение коллизии, которого не оказалось в накопленных в таблице (предыдущих) значения ДСЧ. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 12:49 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
Иван FXS А также команду "Debug.Print x" в коде... Debug.print не отображает двоичное представление числа, а отображает, см выше, форматированное для человеческого глаза приблизительное значение, которое в каких-то обстоятельствах случайно может оказаться даже и точным. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 12:49 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
booby точно не путаю. "не отображает двоичное представление числа, а отображает" -- да, спасибо, я уже понял не только это, но и то, что некоторые (на самом деле, почти все) значения типа Double просто не могут быть точно/полностью отображены в десятичной нотации. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 12:53 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
Иван FXS, ура. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 12:55 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
sdku Иван FXS sdku, я проверял коллизии в самопальном ДСЧ. На 40-с-чем-то миллионном напоролся вот на это. На невозможность создать свой генератор случайных чисел(без знаний) ТС пытается создать свой генератор из г**на и палок. Вас ни с кем не спутаешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 12:57 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
booby, ага, ура. Осталось ещё с-ура-катся по поводу того, что "десятичная нотация" (записи чисел) и "форматирование" -- это не одно и то же: Debug.Print не выводит число целиком не потому, что "форматирует", а потому, что последняя десятичная цифра (представления) не определена. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 12:59 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
Иван FXS booby, ага, ура. Осталось ещё с-ура-катся по поводу того, что "десятичная нотация" (записи чисел) и "форматирование" -- это не одно и то же. безусловно и несомненно, что одно и то же - никакой "десятичной нотации" в представлении чисел двоичной точности просто не существует, и там, где она есть, используется не иначе, как с целью отображения для человеческого глаза , или формирования литералов, преобразуемых во внутреннее представление во время компиляции или выполнения. Результат преобразования обеспечивается с набором оговорок, рассуждающих о том, что преобразование произойдет с "достаточной" (для инженерного вычисления, например) степенью точности. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 13:07 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
"чисел двоичной точности "??? (Это вы так переводите "Double"?) booby Результат преобразования обеспечивается с набором оговорок, рассуждающих о том, что преобразование произойдет с "достаточной" (для инженерного вычисления, например) степенью точности. -- нет, Debug.Print х не заморачивается всем этим, а просто выводит все цифры десятичной нотации, которые определены . ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 13:12 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
Иван FXS "чисел двоичной точности "??? (Это вы так переводите "Double"?) это они так называются в русском языке. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 13:24 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
Иван FXS -- нет, Debug.Print х не заморачивается всем этим, а просто выводит все цифры десятичной нотации, которые определены . я не знаю, на каком языке написано это предложение, и затрудняюсь до степени отказа, с его переводом на русский. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 13:26 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
впрочем, у конкретного значения типа Double можно определить (вычислить) сколько угодно цифр его записи в десятичной нотации. Фишка (первая) в том, что точное отображение его сколь угодно длинной, но конечной записью в десятичной нотации может оказаться невозможной. А вторая фишка состоит в том, что при (арифметических) операциях со значениями типа Double происходит округление, чтобы результат поместился обратно в значение того же типа Double, и именно в этом смысле "окончание" (десятичной нотации, например) числа "не определено". ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 13:32 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
booby это они так называются в русском языке https://yandex.ru/search/?text=числа двоичной точности&lr=16 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 13:35 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
одинарная..двойная точность..плавающая точка-до хрена в дохреновой степени плюс единица-есть же "старые, добрые"-денежный,целое,длинное целое,действительное-не припомню чтоб на практике(лично мне) понадобился тип с плавающей точкой ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 13:42 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
Иван FXS booby точно не путаю. тогда вот здесь, наверно, был другой Иван, или тот, что есть сейчас, уже все забыл - и почему после двойного преобразования двоичное представление меняется, и почему непосредственно сравнивать такие числа - не самая умная идея: Задачка ЗЫ Если вам "посередине" на самом деле нужна действительная арифметика удвоенной точности, не используйте хотя бы на этапе хранения вычисленных значений этот формат. Уходите на восьмибайтные структуры двоичного хранения. Применительно к Access это значит - храните полученные значения в полях binary(8). Жизнь существенно упростится. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 13:43 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
Иван FXS впрочем, у конкретного значения типа Double можно определить (вычислить) сколько угодно цифр его записи в десятичной нотации... Умнее было было бы перестать писать совсем уж откровенный бред. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 13:46 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
sdku, не понял, какой именно термин в вашей реплике представляет тип Double (в VB)... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 13:46 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
Иван FXS, Посмотри свои две первые картинки... Если ты оперируешь в голове яблоками, то оперируй только яблоками и всё будет хорошо... Допустим ты положил в мусорное ведро яблоко не глядя... Пока ты кроме яблок ничего не замечаешь - всё норм, одно яблоко положил - одно и лежит, вытащил его - тоже норм, - нет в ведре яблок... А ты что делаешь? Положил не глядя, потом достал яблоко из мусорного ведра и опа такой - а х.ле в ведре мусор лежит ??? Типа яблоко нагадило... По идее, если оперируешь чисто яблоками, то мусор -3.33....E-16 на самом деле равный 0,000000000000000333 не должен тебя особо напрягать (достаточная инженерная точность как писали ниже), если тебя это все таки напрягает - не выноси никому мозк и в первую очередь самому себе... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 13:49 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
booby тогда вот здесь, наверно, был другой Иван, или тот, что есть сейчас, уже все забыл - и почему после двойного преобразования двоичное представление меняется, и почему непосредственно сравнивать такие числа - не самая умная идея: Задачка кто старое: booby даже исходный x сам с собой на равенство/неравенство не вполне корректно сравнивать.. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 13:53 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
Иван FXS, Из HELPа: "Тип данных double – 64-разрядная переменная с плавающей запятой." Думаю,это сугубо моё личное мнение,не стоит слишком глубоко(достаточно базовых знаний-это обязательно) вникать в суть того,что не понадобится,а вот если понадобится-тогда и изучите Поле двойной точности с плавающей запятой в качестве ключевого-здесь более интересно не что такое поле с плавающей запятой и как оно отображается,а как можно додуматься до использования его в качестве ключа ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 14:06 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
sdku, могу только повторить: я искал коллизии в самопальном ДСЧ. И для этого складывал его результаты в таблицу. А чтобы быстрее проверять* новые результаты на совпадение со старыми -- приндексировал эту таблицу по этому (единственному, на самом деле) её полю. То, что я употребил слово "ключ" вместо "индекс" -- ну, звиняйте. Я просто нажал в конструкторе кнопку с ключиком, чтобы создать индекс с уникальными значениями. ________________ * = на самом деле, просто проверять, слово "быстрее" тут лишнее ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 14:12 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
Иван FXS ...Я просто нажал в конструкторе кнопку с ключиком, чтобы создать индекс с уникальными значениями. индекс с уникальными значениями формирует структуру, которая работает так, как должно работать то, что в реляционной теории называется ключом. В этом контексте "ключ" и "индекс с уникальными значениями" - полные синонимы. Правильная работа ключа целиком основана на наличии точных правил, позволяющих надежно сравнивать значения, как минимум, на равенство/неравенство. Менее важно, но используется для сортировки предположение о надежности сравнения на меньше. Здесь вы добровольно объявляете ключом поле с заведомо ненадежными правилами сравнения. Маловероятно, что это может вас устроить. И, это вы уже проходили , независимо от того, чей глаз от этого должен выкатиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 14:31 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
booby Здесь вы добровольно объявляете ключом поле с заведомо ненадежными правилами сравнения. PS. Ещё раз, если два значения типа Double (или "Двойное с плавающей точкой" в таблице) равны, то они будут оставаться равными всегда. А если не равны, то будут оставаться неравными. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 14:52 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
Иван FXS .... значения типа Double имеют абсолютно надежные правила сравнения .... PS. Ещё раз, если два значения типа Double (или "Двойное с плавающей точкой" в таблице) равны, то они будут оставаться равными всегда.... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 15:07 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
Иван FXS могу только повторить, что значения типа Double имеют абсолютно надежные правила сравнения смотря какая точность. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 15:12 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
sdku, покажите код, в котором два значения типа Double, оставаясь каждое неизменным, то равны, то не равны друг другу. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 15:14 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
booby тогда вот здесь, наверно, был другой Иван, или тот, что есть сейчас, уже все забыл - и почему после двойного преобразования двоичное представление меняется, и почему непосредственно сравнивать такие числа - не самая умная идея: Задачка ТС клинит. Ему же объяснили он опять "за рыбу деньги" ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 15:17 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
ROI смотря какая точность. Код: vbnet 1. 2. 3. 4. 5.
? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 15:18 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
Иван FXS sdku, покажите код, в котором два значения типа Double, оставаясь каждое неизменным, то равны, то не равны друг другу. Может объясните ЗАЧЕМ Вам этот тип-уж очень интересно (сегодня это не так актуально,но лет 40 назад,если это не есть объективная необходимость, за такое расточительное отношение к ресурсам Вас бы к компьютеру близко не подпустили) Иван FXS sdku, могу только повторить: я искал коллизии в самопальном ДСЧ. И для этого складывал его результаты в таблицу. А чтобы быстрее проверять* новые результаты на совпадение со старыми -- приндексировал эту таблицу по этому (единственному, на самом деле) её полю... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 15:58 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 15:59 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
sdku если Вы не работаете с огромными числами(значениями) то ЗАНАХРЕНА Вам этот тип???? -- какие огромные числа? У ДСЧ результат вообще [0;1). В смысле "ЗАНАХРЕНА этот тип"? А какой использовать -- Single, что ли? Типа, экономить 4 байта на переменную? О чём вообще спич? Ну, Currency ... не понимаю, нафига он мне? В том ДСЧ, про который я сейчас говорю, вообще Decimal ( целочисленный !) внутри. Код: vbnet 1. 2. 3.
Вы не знаете (и не можете знать), что я делаю (и что мне нужно), но как-то с гонором начинаете поучать. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 16:27 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
Иван FXS booby Здесь вы добровольно объявляете ключом поле с заведомо ненадежными правилами сравнения. 1) за логикой своих высказываний все-таки лучше следить. Иначе может оказаться, что в истинные они обращаются только при ложности посылок. Для того чтобы индексация работала, необходим сам факт наличия правил сравнения, а термин "надежные", по крайней мере, в использованном вами смысле, требует уточнения. 2) кое-что, похоже вы забыли. Попробую напомнить: 2.а) Стандарт предполагает наличие двух нулей - положительного и отрицательного. У них разные двоичные представления, но для vba несомненно, думаю, что и для Access как субд тоже, они всегда точно равны. По крайней мере, полученный однажды в индексе отрицательный ноль не даст там появиться второму положительному. Существенно это для вашего случая или нет - издалека неведомо. 2.б) VBA тщательно оберегает вас от получения NAN в качестве результата вычисления простого выражения сорта sqr(-1) Однако из этого не следует, что он точно и несомненно не сможет у вас приключиться в вашем не показанном вычислении. Я не знаю, что с этим делает Access - запишет он NaN в таблицу или откажет. Но, если вдруг запишет, то ключ немедленно превратится в тыкву, поскольку NaN ничему не равен, в том числе самому себе. Один раз попавший в уникальный индекс NaN обязан попадать туда произвольное количество раз. Дальнейшее к ключу, само по себе не относится, но... с) По отношению к "надежному" сравнению, что бы это ни значило, обычно "естественно" предполагают применимость правила транзитивности. То есть, если a = b И b = c ТО несомненно a = c На чем строится ваша уверенность, что транзитивность вообще применима к действительным числам двойной точности. d) Следующее "естественное" предположение, что из a = b несомненно следует, что 1000*a = 1000*b Вот это не обеспечивалось исторически ни первоначальными формулировками стандарта ни первоначальными фактическими реализациями. e) умножение действительных чисел двойной точности, в общем случае, некоммутативно: a*b и b*a не обязаны давать один и тот же двоичный результат. Даже если сейчас во всей этой теме что-то исправлено, как методом уточнения стандарта, так и методом внесения исправлений в железо, свободно манипулировать утверждениями безапеляционного типа в такой теме можно, при условии что вы точно знаете и понимаете все особенности своего окружения. Удачи в борьбе с отображением значений действительных чисел. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 16:37 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
booby То есть, если a = b И b = c ТО несомненно a = c На чем строится ваша уверенность, что транзитивность вообще применима к действительным числам двойной точности. booby d) Следующее "естественное" предположение, что из a = b несомненно следует, что 1000*a = 1000*b Вот это не обеспечивалось исторически ни первоначальными формулировками стандарта ни первоначальными фактическими реализациями. e) умножение действительных чисел двойной точности, в общем случае, некоммутативно: a*b и b*a не обязаны давать один и тот же двоичный результат. если а равно b, то они будут равны всегда . ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 16:42 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
Иван FXS В том ДСЧ, про который я сейчас говорю, вообще Decimal ( целочисленный !) внутри. Не надо хранить результаты вычислений, выполненных в арифметике cdec в полях binary double. Для этого у Access есть тип Numeric, точно соответствующий формату внутреннего представления таких чисел И вы опять ошибаетесь, целиком "целочисленные внутри" - currency, у них и арифметика целочисленная.. Наличие шкалы в decimal существенно отличает арифметику в этом типе от обычной целочисленной. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 16:53 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
Иван FXS если а равно b, то они будут равны всегда . Это критически зависит от года выпуска железа, по отношению к которому вы производите столь безумное суждение. Они, исторически, могли оказываться равными при первом сравнении и не равными при втором. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 16:55 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
кстати booby d) Следующее "естественное" предположение, что из a = b несомненно следует, что 1000*a = 1000*b Вот это не обеспечивалось исторически ни первоначальными формулировками стандарта ни первоначальными фактическими реализациями. -- обеспечивается, конечно: вызов любой стандартной математической функции (в том числе и УМНОЖИТЬ(a, b)) с одними и теми же аргументами -- что явно так в сформулированном вами примере -- даёт всегда один и тот же результат. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 16:59 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
booby Это критически зависит от года выпуска железа -- шумящее железо? Ну-ну. А 12345678 в нём у вас всегда равно 12345678? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 17:01 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
Иван FXS кстати booby d) Следующее "естественное" предположение, что из a = b несомненно следует, что 1000*a = 1000*b Вот это не обеспечивалось исторически ни первоначальными формулировками стандарта ни первоначальными фактическими реализациями. -- обеспечивается, конечно: вызов любой стандартной математической функции (в том числе и УМНОЖИТЬ(a, b)) с одними и теми же аргументами -- что явно так в сформулированном вами примере -- даёт всегда один и тот же результат. ваши домыслы, сами по себе для меня давно не интересны. Извините. Верить вы можете вообще во что угодно. Даже в такую фигню, как "вызов функции умножения всегда дает тот же результат" применительно к волшебным binary double Вероятно, даже более того, персонально вам разрешено верить и в то, что два последовательных преобразования десятичного литерала 1000 в двоичное представление тоже всегда дает один и тот же результат. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 17:03 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
booby Не надо хранить результаты вычислений, выполненных в арифметике cdec в полях binary double. booby Для этого у Access есть тип Numeric, точно соответствующий формату внутреннего представления таких чисел booby И вы опять ошибаетесь, целиком "целочисленные внутри" - currency, у них и арифметика целочисленная.. Наличие шкалы в decimal существенно отличает арифметику в этом типе от обычной целочисленной. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 17:10 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
booby Даже в такую фигню, как "вызов функции умножения всегда дает тот же результат" применительно к волшебным binary double Впрочем, я помню, что в вашей вселенной booby даже исходный x сам с собой на равенство/неравенство не вполне корректно сравнивать... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 17:11 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
упсссс... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 17:54 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
Иван FXS booby Для этого у Access есть тип Numeric, точно соответствующий формату внутреннего представления таких чисел В вашем тоже есть, только вы, может быть, не знаете, как его указать в визуальном интерфейсе. Если при создании поля в конструкторе таблицы выбрать тип поля "числовой" и размер поля "двойное с плавающей точкой" - то то, что получится в итоге - будет полем фиксированного размера с типом binary_double А если в типе поля указать "числовой", а в размере сказать "действительное", то ему можно задавать "точность" вплоть до 28, и тогда то, что получится, будет Numeric полем. Проблема с ним только в том, что при любом способе его задания, вы не сможете хранить в нем результат произвольного decimal вычисления. Только в рамках попадания в (точность, шкала). Либо дробные хвосты обрежутся по шкале, либо значение не влезет в указанную точность. Но если для вас достоверно значима только целая часть, то (28,0) позволит вам получить дополнительные разряды точного представления целого числа. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 17:55 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
booby, в конструкторе таблиц вижу, да. Но я "пляшу" от кода (то есть VBA). ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 18:03 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
Иван FXS ....Вы не знаете (и не можете знать), что я делаю (и что мне нужно)... Очень сожалею что ввязался-весь топик напоминает:"а брошу ка я им кость-посмотрим что будет" при полном отсутствии желания что-то узнать или чему-то научиться ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 18:32 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
Иван FXS ....Вы не знаете (и не можете знать), что я делаю (и что мне нужно)... Очень сожалею что ввязался-весь топик напоминает:"а брошу ка я им кость-посмотрим что будет" при полном отсутствии желания что-то узнать, чему-то научиться, изменить свое мнение, если оно ошибочно ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 18:42 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
sdku помогите/как создать генератор случайных чисел с разрядностью * эти числа будут участвовать в вычислениях/будут использованы в качестве идентификатора (Вообще-то топик был, давно, полтора года назад: https://www.sql.ru/forum/1329007-1/kak-povysit-moshhnost-rnd-s-single-do-double . Лично для меня тема "многомерного" Монте-Карло -- в 100-мерном пространстве "разыгрываемых" параметров, например, -- так и продолжается...) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 18:45 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
sdku, а этот пост бы написан совершенно не про Монте-Карло и даже не про ДСЧ. И, в общем, я разобрался, почему Debug.Print x не выдаёт точное значение числа (что ему мешает это сделать). Ну а дальше -- слово за слово -- мне начали объяснять, что нельзя индексировать поле с плавающей точкой (хотя, конечно, можно) и прочее. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 18:53 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
Иван FXS booby, в конструкторе таблиц вижу, да. Но я "пляшу" от кода (то есть VBA). Не знаю, какая у вас проблема. в коде вы вообще можете сделать, все, что вам угодно, в пределах поддерживаемого синтаксиса. Посмотрите, какие поля получаются, например, вот так: Код: vbnet 1.
просто number создастся как binary_double, а p1 и p2 как "действительные" . с просто указанием numeric/decimal есть одна проблема - оно тогда создается как numeric(18,0) Хотя надо учесть что с ними были ранее проблемы ( районе access 2000-2003) с сортировкий и выгрузкой в текстовый формат. Насчет varbinary(28) в общем это перехлест, в любом случае должно хватать и 17 байт для хранения любого значения, вычисленного в cdec-арифметике. Дальше весь вопрос в том - нужны ли они вам именно как числа при манипуляции с записями в таблице бд. PS В некоторых других системах указание Numeric без указания точности и шкалы, приводит к тому, что можно записывать вообще любое вычислимое в типе значение, но ms access в этом месте ведет себя иначе. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 19:23 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
booby, "... Create table bb_tbl(...)" -- это вы называете "в коде"? Это в коде, конечно, в том смысле, что это создание таблицы в коде/из кода. В этом кейсе я использовал таблицу только для того, чтобы сохранить в ней 40 миллионов (как оказалось, а могло быть и 100 миллионов) значений датчика "случайных" чисел (ну и сверяться с ними -- делать .seek "=", x -- на основе индекса). ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 19:29 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
Иван FXS, ладно, сорри, я совсем перестал понимал, что у вас в коде, а что только для того, чтобы 40 миллионов раз... Успехов в трудах. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 19:40 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
Иван FXS booby Это критически зависит от года выпуска железа -- шумящее железо? Ну-ну. А 12345678 в нём у вас всегда равно 12345678? Нет, трепет "шумящего железа", когда был, сводился, главным образов к битве между тупоконечниками и остроконечниками по вопросу о том, как правильно писать циклы. Надо ли формулировать условие завершения while i < n, разрешив программе вернуть недостоверный результат расчета суммы массива, в результате преждевременного "шумящего" перескока i через n, или правильно написать while i <> n, разрешив при таком происшествии программе впасть в бесконечный цикл, может быть, вплоть до авоста по перебору разрядности i. Тогда становится "совершенно понятно", что такой перескок несомненно был, и расчет надо запустить заново. Такой спор вряд ли может завершиться за разумное время. Касательно чисел двойной точности, примерно так история лежала, и vba самого по себе она не касается, а касается написания программ на c/c++, но все-таки это история, о которой хотя бы из любопытства можно иметь какое-то представление: В какой-то момент, если не ошибаюсь, в районе разработки pentium-5, в стандарт были внесены дополнения, касающиеся специального представления особо малых числе в районе нуля. Сопроцессорная часть этого процессора, с самого начала разрабатывалась под эти "уточнения". А дальше получилось вот что - математика для binary double всегда имела две реализации - "библиотечную" и "машинную". традиционно в компиляторах c/c++ если не использованы прагмы, выбор определялся выбором уровня оптимизации кода при компиляции. "библиотечную" часть к выходу процессора никто не правил. А способ сохранения значения регистров при вызове функции из текущего куска кода зависел от того, какая математика использовалась. Вы могли получить два равных малых значения, вычисленных в другой библиотеке, скомпилированной под использование "машинной" арифметики, затем вызвать любую функцию и затем зачем-то сравнить снова два ранее уже сравнивавшихся значения. В зависимости от того, что происходило с регистрами, содержащими эти значения - вытеснялись их предыдущие значения или нет, вы могли получить что угодно - они могли сохранить свои исходные значения, оба обнулиться или обнулиться только какой-то один из них. Оно то да, в красивой теории однажды полученное значение дальше не меняется, а в инженерной практике - как повезет в момент конкретной реализации. В те времена бубен правильной сборки программ лежал так - ты не можешь выбрать уровень оптимизации при сборке большого проекта меньше, чем максимальный предполагаемый среди всех используемых в проекте библиотек. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 20:29 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
booby, честно, понять, почему и как "однажды полученное значение дальше поменяться" может, если никто и ничто ничего с ним не делает, -- выше моего дилетантского разумения. И даже понять, как оно может поменяться при перекладывании из одной ячейки (области) памяти в другую (без преобразования типа) -- тоже. Это же просто биты на нижнем машинном уровне. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 20:55 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
Иван FXS booby, честно, понять, почему и как "однажды полученное значение дальше поменяться" может, если никто и ничто ничего с ним не делает, -- выше моего дилетантского разумения. И даже понять, как оно может поменяться при перекладывании из одной ячейки (области) памяти в другую (без преобразования типа) -- тоже. Это же просто биты на нижнем машинном уровне. где-то оно может и "просто биты", но не в числах двойной точности. "просто биты" - не имеют типа, и, в этом смысле, сами по себе не являются значением . Если код, сохраняющий значение регистра заранее знает, что оно несомненно типизировано, и представляет собой ни что иное как число двойной точности, то "старый" код относится к определенным битам в представлении, говорящим "я сейчас представляю особо малое число", именно как к мусору, появившемуся, например, в результате шума, недопустимому вообще в представлении значения такого типа. А дальше... дальше стандарт много чего предполагает, но этим почти всегда не располагают писатели на большинстве языков, а там, где могут влиять, полагаются на поведение по умолчанию. В этом месте допустимо разное поведение - от выброса ошибки "ой мне тут грязь в регистре вместо значения подсунули", до просто тихой очистки значения в ноль. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 21:15 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
booby, "очистка значения в ноль" или оставление в нём чего-то там -- это полюбасу часть вычисления (нового значения). А по завершении вычисления зачем с ХРАНЯЩИМСЯ значением что-то делать? И даже при присвоении значения одной переменной (типа Double) другой переменной (типа Double) -- вы ожидает каких-то проверок, а не просто Move? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 21:28 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
booby в стандарт были внесены дополнения, касающиеся специального представления особо малых числе в районе нуля -- кстати, что это за числа -- они с (отрицательным) значением (десятичного) порядка меньше стандартного для типа Double (который -324)? Экзотично, конечно, но тогда можно и "особо крупные" значения ввести в оборот -- со значениями (десятичного) порядка больше +308... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 21:42 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
Иван FXS, 8-байтный double и на 16 и на 32 разрядной машине занимает более одного регистра. вот 32 разрядная машина, занято два регистра, а вам нужен сейчас, допустим, всего один из них для вызова дочерней функции, в кишках которой может потребоваться и второй. В общем случае, вы не можете в такой ситуации сохранять 64-битное значение, сидящее в 2х регистрах кусками, и кто-то должен сказать - "эй, это значение сломается, если освободить только один регистр". Точно можете, если точно знаете, что там значения двух независимых интов, а иначе откуда-то должна взяться уверенность в правильном сборе значения назад при возврате управления в текущий код. И да, проверка типа при присвоении несомненно происходит, весь вопрос когда. В компилируемых языках - на этапе компиляции, в интерпретируемых на этапе фактического присвоения. В норме, кстати это не может происходить с помощью Move - move связан с передачей владения значением. Присвоение значений простых типов всегда осуществляется копированием. Правильность работы обеспечена там (например в vba), где существует принудительная инициализация значения объявленной типизированной переменной значением по умолчанию из множества допустимых для типа. В прочих случаях, в языках где допускается существование переменных с не полностью сформированным значением , ответственность падает на программиста в виде "неопределенного поведения". ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 21:51 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
Иван FXS booby в стандарт были внесены дополнения, касающиеся специального представления особо малых числе в районе нуля -- кстати, что это за числа -- они с (отрицательным) значением (десятичного) порядка меньше стандартного для типа Double (который -324)? Экзотично, конечно, но тогда можно и "особо крупные" значения ввести в оборот -- со значениями (десятичного) порядка больше +308... субнормальные числа. И, с версией сопроцессора я ошибся, это был еще 8087 https://ru.wikipedia.org/wiki/Денормализованные_числа ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 21:57 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
booby, ну, хорошо, когда повстречаюсь с тем, что значение типа Double при присвоении из одной переменной типа Double в другую переменную типа Double -- перестало быть равным само себе... обязательно вам об этом сообщу. Типа: Код: vbnet 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 22:22 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
Иван FXS booby, ну, хорошо, когда повстречаюсь с тем, что значение типа Double при присвоении из одной переменной типа Double в другую переменную типа Double -- перестало быть равным само себе... обязательно вам об этом сообщу. Типа: Код: vbnet 1. 2. 3. 4.
Не равно самому себе, это когда a <> a ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 22:35 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
booby, a <> a -- это значение переменной не равно само себе. А то, что я написал, это само значение не равно самому себе, безотносительно переменной, в которой оно лежит. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 22:44 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
В полной мере vba не даст вам насладиться этой этой темой, но на коротке, путем подглядывания в содержимое переменных на панели locals, можно, например, так: Код: vbnet 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. 31.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 23:00 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
booby, вы продемонстрировали, что значение типа Double может быть таким, что для него не будут (правильно) выполняться элементарные арифметические операции. Прикольно, да. Но я обсуждал не операции (со значениями), а равенство значений самим себе. И его, равенства, сохранение во времени. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2022, 00:47 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
Собственно классическая история про этот тип выглядит так: запустить в пошаговом режиме test_double_calc и наблюдать за происходящим: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Множество прочих историй либо стухли по мере смены поколений железа, либо замены библиотек, а какие-то из них у себя к проявлению Vba никогда не позволял, предпочитая стратегию с выбросом ошибки в определенных моментах. Код в предыдущем посте получился с дефектом, не влияющим на фактическое поведение, но вот замена с добавлением пары фрагментов. он, конечно, хрупкий, благодаря "особой безопасности" vba, но в самый общий курс дела приблизительно вводит. Код: vbnet 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. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2022, 00:49 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
Иван FXS, для NaN по стандарту не существует понятия равенства самому себе. Но это нельзя показать в Vba Он настроен на то, что при обращении с ним без "хакерства", NaN не может быть получен ни при каких обстоятельствах. У вас там точно все без "хакерства"? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2022, 00:53 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
booby, .... ' прямое вычисление ... ' считаем через функцию ...-- я не произносил никаких утверждение про вычисления , но только про то, происходит ли что-нибудь со значениями, если никто и ничто ничего с ними не делает . ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2022, 01:01 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
booby для NaN по стандарту не существует понятия равенства самому себе "вообще говоря, понятия равенства самому себе значений типа Double не существует, потому что для некоторых значений типа Double его не точно существует" ? Потому что если для некоторых А не существует Б, то это именно так и должно формулироваться: "вообще говоря, Б для А не существует". ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2022, 01:08 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
booby, кстати, если к первому вашему примеру добавить любую из строчек Код: vbnet 1. 2. 3.
то видно, что вы в самом деле умеете (хакерски) засовывать в Double такое экзотическое значение, для которого выяснение вопроса, равно ли оно самому себе, не возможно. Ну, хорошо, буду знать. Куда это меня продвигает? Это же речь о том, что VBA позволяет хранить в Double сущность (сущности?), которая не является числом. Ну, позволяет, ладно. Не всё, что может находиться в значении типа Double, обязательно является числом. Запомнил. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2022, 01:22 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
прямым следствием "первого классического примера" является вот такой второй и тоже классический: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2022, 01:26 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
Иван FXS Это же речь о том, что VBA позволяет хранить в Double сущность (сущности?), которая не является числом. Ну, позволяет, ладно. числом оно не является. Но является допустимым значением в множестве значений чисел двойной точности. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2022, 01:29 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
booby Но является допустимым значением в множестве значений чисел двойной точности Но мне по прежнему интересно, есть ли в стандарте (или в хелпах) VBA оговорки о том, что не все значения типа Double являются числами... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2022, 01:37 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
Иван FXS "вообще говоря, понятия равенства самому себе значений типа Double не существует, потому что для некоторых значений типа Double его не точно существует" ? Нет Дело принципиально совсем в другом. Вы беретесь за такой тип, в котором история как библиотечной, так машинной реализации которой много раз менялась. Причем для целей, для которых, как кажется, выбранный вами тип случаен по существу. У него не просто длинная история, а такая длинная, которая много длинней истории самого стандарта. И в этой истории в разные времена были разные особенности. Со временем она как-то меняется, а vba по по своему еще и защищает от некоторых ее особенностей. Смысл всех рассказов состоит вот в чем - если цель вашего использования чисел двоичной точности по сути случайна к его родным по исходному назначению собственным задачам и целям - не трогайте его. В истории любые ваши предположения о нем как о "нормальном типе", на определенных отрезках не оправдывались. Начиная с транзитивности, если a = b и b = c, то a = c, через сравнение с самим собой, и заканчивая чудесами с сохранением навсегда однажды полученного значения. Это сложный тип, со сложной историей. Благоразумней не трогать его, чем отстаивать любые абстрактные идеи, касающиеся того, каким должен, а каким не может быть правильный тип, предназначенный для использования в компьютерах. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2022, 01:44 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
booby выбранный вами тип случаен по существу Ещё раз, ну, узнал я про NaN в Double, -- это меня совершенно не обеспокоило. На том, что Debug.Print x не распечатывает число целиком, -- я, хотя бы, запнулся, а тут... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2022, 01:57 |
|
MS Access отображает значения Double (Двойное с плав. точкой) не полностью?
|
|||
---|---|---|---|
#18+
Иван FXS Debug.Print x не распечатывает число целиком нет проблем распечатать целиком: Код: vbnet 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2022, 02:30 |
|
|
start [/forum/search_topic.php?author=ertertertertete&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
154ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
103ms |
get tp. blocked users: |
1ms |
others: | 377ms |
total: | 698ms |
0 / 0 |