|
|
|
Округление
|
|||
|---|---|---|---|
|
#18+
Дробное число записываю в две пустых таблицы одинаковых по структуре, только разница в количестве знаков после запятой. После округления в этих таблицах получаю разный результат: Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2007, 17:51 |
|
||
|
Округление
|
|||
|---|---|---|---|
|
#18+
Существует такое понятие "точность рассчетов". Т.е. с каким числом значащих цифр без потери точности может работать данная программа. Для FoxPro это 16 значащих цифр. Точнее, чуть меньше. Но поскольку указать точность как дробное число нельзя его и округлили до 16. Из математики известно, что доверять в этом случае можно только 14 значащим цифрам. 15 цифра будет сомнительной, а 16 будет иметь практически случайное значение. При размерности N(20,10) сразу получаем 10 значащих цифр на дробную часть. Еще 4 цифры в целой части. Т.е. имеем 14 значащих цифр. Близко к пределу точности рассчетов FoxPro. Поскольку последняя цифра 5, то получается достаточно "ошибиться" на 1 в меньшую сторону в 15 разряде и получим уже не совсем тот результат, который ожидался. Вероятно, именно это и произошло при выполнении функции ROUND(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2007, 19:36 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=192&tid=1589063]: |
0ms |
get settings: |
9ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
42ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 336ms |

| 0 / 0 |
