Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Правило округления / 10 сообщений из 10, страница 1 из 1
01.02.2007, 10:04
    #34298178
shanton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правило округления
Есть два значения, например 525 и 0.065, результат умножения которых заносим в поле таблицы n3 N(10,2)

SELECT MyTable
REPLACE n3 WITH 525*0.065

В итоге n3=34.13

Оказывается по правилам матиматики это не правельно. Если мы округляем дробную часть до какойто точночсти, то значения меньше 5 округлятся вниз, а больше 5 вверх. А если равно 5, то не чётные вверх, а чётные вниз. Например окрегление до двух знаков после запятой:
34.125 = 34.12 (12 - чётное)
34.135 = 34.14 (13 - не чётное)
Почемуто последнее правило математики (если = 5) в Fox-е (REPLACE n3 WITH 525*0.065) не сработало. Или шото неправельно делаю. Как вообще делать округление в Fox-е по всем правилам математики?
Зарание благодарен!
...
Рейтинг: 0 / 0
01.02.2007, 10:19
    #34298227
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правило округления
Код: plaintext
1.
?CEILING( 34 . 125 )
?FLOOR( 34 . 125 )
...
Рейтинг: 0 / 0
01.02.2007, 11:45
    #34298605
shanton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правило округления
Это понятно, что самостоятельно отслежывая чётная или не чётная дробная часть, округлять с помощью этих функций. Готовой функции нету которая округляет дробную часть до заданой точности учитывая все правила математики?
...
Рейтинг: 0 / 0
01.02.2007, 11:50
    #34298627
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правило округления
...
Рейтинг: 0 / 0
01.02.2007, 13:52
    #34299126
Burn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правило округления
Готовой функции нету которая округляет дробную часть до заданой точности учитывая все правила математики?
Глобального правила математического округления не существут - видов округления очень много и они поразному используются в различных ситуациях. То что Вы хотите это так называемое банковскоое округление - http://ru.wikipedia.org/wiki/%D0%9E%D0%BA%D1%80%D1%83%D0%B3%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5
Встроеной функции для него в Фоксе нет
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
05.02.2008, 12:05
    #35110313
Scare82
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правило округления
Подскажите пожалуйста а если случай довольно простой....
То есть есть результат вычисления - он равен 3657.70775
Нужно средствами Fox Pro округлить его до 2 знаков математически или как это назвать, то есть как учили в школе! Должно получиться 3657.71.
функция ROUND(3657.70775 , 2) возвращает результат - 3657.70

Как быть ?
...
Рейтинг: 0 / 0
05.02.2008, 12:44
    #35110486
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правило округления
Scare82функция ROUND(3657.70775 , 2) возвращает результат - 3657.70
Не верю
...
Рейтинг: 0 / 0
05.02.2008, 13:08
    #35110587
Galyamov Rinat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правило округления
"AleksMed" <nospam@sql.ru>; сообщил/сообщила в новостях следующее:
news:5245506@sql.ru...
> Автор: AleksMed
> Scare82
> функция ROUND(3657.70775 , 2) возвращает результат - 3657.70
>
> Не верю

Тоже не верю!!!!

Результат может быть ОТОБРАЖЕН как 3657.7 но не как 3657.70!!!

Если я ошибаюсь - приводи все set`ы


SET DECIMALS TO 1

SET FIXED ON

lnRounded=ROUND(3657.70775 , 2)

?lnRounded

SET FIXED Off

?lnRounded


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
05.02.2008, 15:49
    #35111150
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правило округления
AleksMed Scare82функция ROUND(3657.70775 , 2) возвращает результат - 3657.70
Не верю
+1
...
Рейтинг: 0 / 0
06.02.2008, 00:55
    #35112246
Urri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правило округления
А в каком месте она так отображается? Не в поле с маской случайно?
Или предварительно результат был сохранен в таблице/курсоре с полем размерностью n(X,1), а уже потом отображен?
А если так прямо в командном окне задать:
Код: plaintext
?ROUND( 3657 . 70775  ,  2 )
каков результат? Тоже 3657.70?
________
Не дадим распространиться заразе политкорректности!
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Правило округления / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]