|
минимальное изменение числа типа Double?
|
|||
---|---|---|---|
#18+
Есть число типа Double (переменная типа Double, содержащее некоторое число). Как вычислить минимальное число (тоже типа Double, ессно), большее этого (первого) числа? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2015, 17:10 |
|
минимальное изменение числа типа Double?
|
|||
---|---|---|---|
#18+
это не целочисленный тип данных ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2015, 17:13 |
|
минимальное изменение числа типа Double?
|
|||
---|---|---|---|
#18+
Double (double-precision floating-point) 8 bytes -1.79769313486231E308 to -4.94065645841247E-324 for negative values; 4.94065645841247E-324 to 1.79769313486232E308 for positive values ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2015, 17:14 |
|
минимальное изменение числа типа Double?
|
|||
---|---|---|---|
#18+
математически это N + 0.(0)1 а что касается конкретно типа Double - почитайте, как устроены и хранятся числа с плавающей запятой и поймете некорректность своего вопроса ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2015, 17:30 |
|
минимальное изменение числа типа Double?
|
|||
---|---|---|---|
#18+
Shocker.Pro, я уверен в корректности моего вопроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2015, 17:50 |
|
минимальное изменение числа типа Double?
|
|||
---|---|---|---|
#18+
если уверены, то действуйте =) почитайте про точность для начала ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2015, 17:53 |
|
минимальное изменение числа типа Double?
|
|||
---|---|---|---|
#18+
Shocker.Pro, вы согласны, что в конкретном коде (на VB, например), для любого конкретного значения переменной Х1, описанной как Dim X1 as Double, X2 as Double Можно вычислить такое значение Х2 переменной Х2, что код If X2 > X1 Then debug.print "OK" If (X2 + X1)/2 = X1 Then debug.print "OK" напечатает два "ОК" ? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2015, 17:58 |
|
минимальное изменение числа типа Double?
|
|||
---|---|---|---|
#18+
Иван FXSShocker.Pro, я уверен в корректности моего вопроса.Тогда предлагаю изложить свою задачу. То есть не то, что вы хотите сделать, а для чего вам это нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2015, 17:59 |
|
минимальное изменение числа типа Double?
|
|||
---|---|---|---|
#18+
Мой вопрос о том, как это сделать МИНИМАЛЬНЫМ КОЛИЧЕСТВОМ кода (и действий). ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2015, 18:00 |
|
минимальное изменение числа типа Double?
|
|||
---|---|---|---|
#18+
Иван FXS, https://ru.wikipedia.org/wiki/Число_двойной_точности Чтобы получить следующее число после текущего, надо мантиссу увеличить на 1. Желательно предусмотреть случай перехода от ненормализованного числа к нормализованному и обратно, и возможность переполнения. А если не лезть в эти дебри - можно считать, что число двойной точности имеет точность 15 десятичных знаков, и попытаться прибавлять (число*10E-16), 2*(число*10E-16) и т.д. и проверять, изменилось число или нет. Как только изменится - Вы получили результат. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2015, 18:01 |
|
минимальное изменение числа типа Double?
|
|||
---|---|---|---|
#18+
Казанский, почему именно Е-16? как раз это приращение будет зависеть от порядка имеющегося числа. То есть, грубо говоря, нужно взять текущий порядок и вычесть 15. Но 15 - это тоже условность, так как имеет место двоично-десятичное преобразование, то есть останется некая приблизительность. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2015, 18:04 |
|
минимальное изменение числа типа Double?
|
|||
---|---|---|---|
#18+
в итоге окажется, что у него деньги в переменных double, вместо currency =) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2015, 18:04 |
|
минимальное изменение числа типа Double?
|
|||
---|---|---|---|
#18+
Иван FXSдля любого конкретного значения переменной Х1 ... Можно вычислить такое значение Х2 переменной Х2Да? Вот не согласен я, что для любого значения. Найти такие значения не сложно, но явно это не для любого значения. Код: vbnet 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2015, 18:05 |
|
минимальное изменение числа типа Double?
|
|||
---|---|---|---|
#18+
Shocker.ProТогда предлагаю изложить свою задачу. То есть не то, что вы хотите сделать, а для чего вам это нужно. У меня в цикле срабатывает проверка If X(i) = Porog then stop И мне нужно сместить порог вверх на минимальную* величину, чтобы эта проверка перестала срабатывать. (* на минимальную - потому что сверху "подпирает" ещё одно ограничение, на которое хочется не напоротоься вообще или напороться как можно позже. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2015, 18:05 |
|
минимальное изменение числа типа Double?
|
|||
---|---|---|---|
#18+
приводите к целочисленному типу свои значения или форатируйте до одного знака после запятой с округлением ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2015, 18:06 |
|
минимальное изменение числа типа Double?
|
|||
---|---|---|---|
#18+
операция сравнения эквивалентности между числами с плавающей запятой - это нонсенс что вы там меряете? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2015, 18:06 |
|
минимальное изменение числа типа Double?
|
|||
---|---|---|---|
#18+
Shocker.Pro, делаю Fast Mediana. На массивах, порождаемых EMA. Второе предложение разъяснить довольно сложно, поэтому лучше не спрашивайте, что это значит. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2015, 18:09 |
|
минимальное изменение числа типа Double?
|
|||
---|---|---|---|
#18+
Иван FXS, Проще это сделать если работать с этим массивом как с 64-битными числами. К мантиссе прибавляешь 1 (или вычитаешь в зависимости от старшего бита 64 битного числа). Можно просто отобразить массив лонгов на массив вещественных, тогда никаких лишних операций не потребуется. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2015, 19:41 |
|
минимальное изменение числа типа Double?
|
|||
---|---|---|---|
#18+
В коде: Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2015, 20:23 |
|
минимальное изменение числа типа Double?
|
|||
---|---|---|---|
#18+
ATM-TURBO 2, м-дааа ... жесть. Спасибо, конечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2015, 21:23 |
|
минимальное изменение числа типа Double?
|
|||
---|---|---|---|
#18+
Иван FXS, Не понимаю в чем заключается жесть. Все просто, представляешь число Double как Int64 и прибавляешь 1 (убавляешь). В ЯП с указателями и соответствующими типами это делается вообще элементарно. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2015, 22:02 |
|
минимальное изменение числа типа Double?
|
|||
---|---|---|---|
#18+
Иван FXS, вот допустим ищем следующее число после ПИ. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Интересно, что выводятся числа как одинаковые, даже если задать знакоместа с избытком. Но разность есть: Код: plaintext 1.
Можно увеличить множитель 5E-17 до 1E-16, но увеличится риск "проскочить" минимальное приращение. Попробуйте присваивать переменной pi разные значения и смотрите, как меняется i. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2015, 22:43 |
|
минимальное изменение числа типа Double?
|
|||
---|---|---|---|
#18+
для этого всего есть тип decimal, но в VB6 с ним не всё просто, но варианты есть, пробуйте ищите в гугле примеры ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2015, 11:44 |
|
минимальное изменение числа типа Double?
|
|||
---|---|---|---|
#18+
ATM-TURBO 2, а зачем нужны Код: vbnet 1. 2.
? Закомментил эти строки - сработало так же. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2015, 11:45 |
|
|
start [/forum/topic.php?fid=60&msg=39133723&tid=2155684]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 290ms |
total: | 413ms |
0 / 0 |