|
|
|
Арифметические операции с типом BINARY_DOUBLE
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Кто-нибудь может мне объяснить что происходит? Код: plsql 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. Почему первый цикл вылетает с ошибкой, а второй цикл успешно выполняется? Я смутно представляю, что индекс цикла for неявно преобразуется до целочисленного типа. Но как в итоге считается финальное double_S, что оно выходит за рамка, не понимаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2018, 18:24 |
|
||
|
Арифметические операции с типом BINARY_DOUBLE
|
|||
|---|---|---|---|
|
#18+
IMNO, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. nd; / ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2018, 19:31 |
|
||
|
Арифметические операции с типом BINARY_DOUBLE
|
|||
|---|---|---|---|
|
#18+
merch, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2018, 19:32 |
|
||
|
Арифметические операции с типом BINARY_DOUBLE
|
|||
|---|---|---|---|
|
#18+
Или так: Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2018, 20:02 |
|
||
|
Арифметические операции с типом BINARY_DOUBLE
|
|||
|---|---|---|---|
|
#18+
IMNOиндекс цикла for неявно преобразуетсяНе преобразуется. Это другая переменная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2018, 21:21 |
|
||
|
Арифметические операции с типом BINARY_DOUBLE
|
|||
|---|---|---|---|
|
#18+
Так это скобки мешали? Как так-то? Насколько я понимаю тип binary_double перемножает числа как мантисса и порядок. То есть например: Код: plsql 1. Так код отработает, потому что в переменной будет увеличиваться только порядок, в результате чего разрядность числа будет такая, что оно влезет в тип binary_double. Но например так: Код: plsql 1. Число неявно преобразуется до вида без порядка, что в итоге даёт разрядность, которая не влазит в binary_double. Отсюда и ошибка переполнения. Всё верно, или я в чём-то неправ? Я ещё нашёл вот такую штуку. Так работает: Код: plsql 1. 2. Так не работает: Код: plsql 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2018, 11:04 |
|
||
|
Арифметические операции с типом BINARY_DOUBLE
|
|||
|---|---|---|---|
|
#18+
IMNOВсё верно, или я в чём-то неправ?При plsql_optimize_level>0 выражения с целочисленными константами предвычисляются в константу с типом PLS_INTEGER. Это фича. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2018, 11:26 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39674922&tid=1883720]: |
0ms |
get settings: |
4ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
150ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 437ms |

| 0 / 0 |
