:: Visual Foxpro, Foxpro for DOS
число десятичных знаков
glaz58

Сообщений: 812
Откуда: Воронеж
Дата регистрации: 09.02.2008
Уважаемые знатоки! Подскажите, пожалуйста, как узнать число десятичных знаков для поля типа Numeric? (независимо от установки set decimals)


------------------
Александр Глазьев, Воронеж
Ratings: 0 negative/0 positive
Re: число десятичных знаков
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Где ? В расчете ? В запросе ?


------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: число десятичных знаков
Goodwin

Сообщений: 3539
Откуда: Омск
Дата регистрации: 03.05.2006
aFields?


------------------
Что мы знаем о лисе?
Ничего. И то не все.
(С)Б. Заходер
Ratings: 0 negative/0 positive
Re: число десятичных знаков
samson_inv

Сообщений: 5915
Откуда: Ростов-на-Дону
Дата регистрации: 01.01.2005
AFIELDS( )
Ratings: 0 negative/0 positive
Re: число десятичных знаков
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Да, только это "число десятичных знаков прописанных в описании поля", а т.к. фокс хранит NUMERIC в виде строк, то реально в таких полях может быть совершенно любое число десятичных знаков (вот выйти за пределы общей длины NUMERIC-а не получится, но используя "научную" нотацию в N(10,2) вполне можно прописать и 1 стотриллионную, например ). Так что в этом деле первичен вопрос "для чего" нужно это узнавать


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: число десятичных знаков
glaz58

Сообщений: 812
Откуда: Воронеж
Дата регистрации: 09.02.2008
А вот для чего это нужно: в прикреплённом файле картинка выполнения функции Messagebox, показывающая результат выполнения SQL SELECT для конкретного поля. В ней показано число 16,09784000.
При записи этого числа
    в поле Numeric 12,3 получается 16,090
    Numeric 12,4 получается 16,0970
    Numeric 12,5 получается 16,09780

То есть вместо значащих цифр в "хвост" подписывается 0. Как записать правильно округлённое число, соответствующее числу знаков после запятой?



Исправлено 1 раз(а). Последнее : glaz58, 06.02.21 19:05
Ratings: 0 negative/0 positive
Re: число десятичных знаков
akvvohinc

Сообщений: 4201
Откуда: Москва
Дата регистрации: 11.11.2008
Цитата:
При записи этого числа
в поле Numeric 12,3 получается 16,090
Numeric 12,4 получается 16,0970
Numeric 12,5 получается 16,09780

У меня нет такой проблемы:
FOR dec=3 TO 5
CREATE CURSOR cnum (num N(12,m.dec))
INSERT INTO cnum VALUES (16.09784000)
? num
ENDFOR
На экране вижу:
16.098
16.0978
16.09784
Если у вас мой пример выдает то же, что и у меня, то надо проверять, чему на самом деле равно выражение, которое записывается в поле. Мне думается, что не 16.09784000.



Исправлено 2 раз(а). Последнее : akvvohinc, 06.02.21 21:10
Ratings: 0 negative/0 positive
Re: число десятичных знаков
glaz58

Сообщений: 812
Откуда: Воронеж
Дата регистрации: 09.02.2008
Спасибо, именно этот вариант сработал так, как надо. Причём без выяснения числа десятичных знаков в поле.



Исправлено 1 раз(а). Последнее : glaz58, 11.02.21 13:53
Ratings: 0 negative/0 positive
Re: число десятичных знаков
akvvohinc

Сообщений: 4201
Откуда: Москва
Дата регистрации: 11.11.2008
А вы бы привели и тот вариант, который не работал "как надо".
Думаю, проблема разрешилась бы и там.
Ratings: 0 negative/0 positive
Re: число десятичных знаков
glaz58

Сообщений: 812
Откуда: Воронеж
Дата регистрации: 09.02.2008
Я делал просто:
Replace kolvo WITH v_rashod
где в переменную v_rashod записано значение с 8-ю десятичными знаками. Только когда в поле было установлено 5 десятичных знаков, значение записывалось правильно.
Ratings: 0 negative/0 positive
Re: число десятичных знаков
akvvohinc

Сообщений: 4201
Откуда: Москва
Дата регистрации: 11.11.2008
Нет, этого не может быть.
Очевидно, что значение в v_rashod попало не так:
v_rashod = 16.09784000

А для выяснения проблемы главное как раз в том, что и как было записано в переменную v_rashod (если это вообще переменная, а не поле).

Что выводится на экран, если непосредственно перед этим REPLACE вставить:
WAIT WINDOW v_rashod
?
Ratings: 0 negative/0 positive
Re: число десятичных знаков
glaz58

Сообщений: 812
Откуда: Воронеж
Дата регистрации: 09.02.2008
Спасибо, Ваше предыдущее решение уже работает.
Ratings: 0 negative/0 positive
Re: число десятичных знаков
Chemberzhy

Сообщений: 13142
Откуда: Измаил
Дата регистрации: 28.04.2009
[attachment 34789 ]

Удивительное дело!
Человеку потребовалось 9 лет, чтобы ответить!
Причем в стилистике такой, как будто полчаса назад общались.


------------------
Что-то с памятью моей стало, всё что было не со мной- помню.
Ratings: 0 negative/0 positive
Re: число десятичных знаков
Taran
Автор

Сообщений: 13623
Откуда: Красноярск
Дата регистрации: 16.01.2008
И это не единственная странность.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 25 kornienko_ru  (Гостей: 24)

© 2000-2024 Fox Club 
Яндекс.Метрика