Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / interbase целые и дробные части числа / 21 сообщений из 21, страница 1 из 1
13.01.2015, 01:51
    #38852694
Grigory1111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
interbase целые и дробные части числа
Не могу никак въехать...
спрошу на примере...
есть x1=6,144 и x2=1.2;
нужно получить целую и дробную часть деления этих чисел в виде integer;
т.е 6,144/1,2=5,12

результат 5 -целое, 12-дробное

Уже 3 часа сижу мучаю udf
с целой придумал cast(5,12 as integer)===5
а вот как 12 вытащить???

Заранее спасибо.
...
Рейтинг: 0 / 0
13.01.2015, 01:55
    #38852695
Grigory1111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
interbase целые и дробные части числа
я про хранимые процедуры)
...
Рейтинг: 0 / 0
13.01.2015, 08:16
    #38852729
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
interbase целые и дробные части числа
Grigory1111я про хранимые процедуры)floor()
зы. я про доку :)
...
Рейтинг: 0 / 0
13.01.2015, 08:25
    #38852732
roadster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
interbase целые и дробные части числа
Grigory1111а вот как 12 вытащить???я извращенец, поэтому предложу зафигачить в стринг, а там уже разобрать этот стринг
...
Рейтинг: 0 / 0
13.01.2015, 08:41
    #38852743
Exteris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
interbase целые и дробные части числа
roadster я извращенец
Видимо я тоже.)
Код: sql
1.
2.
select substr('6.12',1,position('.' in '6.12')-1),substr('6.12',position('.' in '6.12')+1,20)
from rdb$database
...
Рейтинг: 0 / 0
13.01.2015, 08:43
    #38852744
pastor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
interbase целые и дробные части числа
Grigory1111,

Умножь на 100 ;)
...
Рейтинг: 0 / 0
13.01.2015, 09:18
    #38852771
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
interbase целые и дробные части числа
Если из самого числа отнять его целую часть, то (внезапно!) в результете останется дробная. ;)
...
Рейтинг: 0 / 0
13.01.2015, 09:57
    #38852808
MNF
MNF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
interbase целые и дробные части числа
Есть у меня тут ХП древняя для таких дел, живет еще с 5.6 кажется :-o

Код: 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.
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.
61.
62.
63.
64.
65.
66.
67.
CREATE OR ALTER PROCEDURE F_MODF (
    ANUMERIC TYPE OF TY$NUMBER)
RETURNS (
    AINTEGER TYPE OF TY$NUMBER,
    AFRACTION TYPE OF TY$NUMBER)
AS
/*******************************************************************************
* $Workfile: F_MODF.sp $
* $Revision: 4 $
* $Date: 15.07.13 14:58 $
*
* DBVERSION:
*   DB6.000.041
*
* DESCRIPTION: 
*    Разбиение числа на целую и дробную части.
*    Пример: 'SELECT * FROM f_modf(2.5)' вернет 2.0, 0.5.
*
* INPUT PARAMS:
*    ANUMERIC       Преобразуемое число
*
* OUTPUT PARAMS:
*    AINTEGER       Целая часть
*    AFRACTION      Дробная часть
*******************************************************************************/
  DECLARE IsNegative TYPE OF TY$SMALLINT;
BEGIN
  IF (ANumeric IS NOT NULL) THEN
  BEGIN
    IF (ANumeric < 0) THEN
    BEGIN
      IsNegative = 1;
      ANumeric = - ANumeric;
    END
    ELSE
      IsNegative = 0;

    BEGIN

    AInteger = CAST(ANumeric AS TYPE OF TY$INTEGER);

    WHEN ANY DO AInteger = ANumeric;

    END

    AFraction = ANumeric - AInteger;

    IF (AFraction < 0) THEN
    BEGIN
      AInteger = AInteger - 1;
      AFraction = ANumeric - AInteger;
    END

    IF (IsNegative = 1) THEN
    BEGIN
      AInteger = - AInteger;
      AFraction = - AFraction;
    END
  END
  ELSE
  BEGIN
    AInteger = 0;
    AFraction = 0;
  END

  SUSPEND;
END


...
Рейтинг: 0 / 0
13.01.2015, 12:13
    #38852973
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
interbase целые и дробные части числа
все проще же (для неотрицательных чисел, для отрицательных немного подправить)
целая часть:
Код: sql
1.
cast(X-0.5 as integer)


дробная часть (как правильно тут заметили):
Код: sql
1.
X-cast(X-0.5 as integer)
...
Рейтинг: 0 / 0
13.01.2015, 12:32
    #38853003
roadster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
interbase целые и дробные части числа
Exterisroadsterя извращенец
Видимо я тоже.)
Код: sql
1.
2.
select substr('6.12',1,position('.' in '6.12')-1),substr('6.12',position('.' in '6.12')+1,20)
from rdb$database

я бы ещё предусмотрел вариант с запятой, как разделитель
pastorGrigory1111,

Умножь на 100 ;)а если тысячные доли?
...
Рейтинг: 0 / 0
13.01.2015, 12:42
    #38853010
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
interbase целые и дробные части числа
...
Рейтинг: 0 / 0
13.01.2015, 12:43
    #38853011
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
interbase целые и дробные части числа
Naf
Код: sql
1.
cast(X-0.5 as integer)

ужас.
...
Рейтинг: 0 / 0
13.01.2015, 12:45
    #38853013
miwaonline
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
interbase целые и дробные части числа
Ivan_PisarevskyNaf
Код: sql
1.
cast(X-0.5 as integer)


ужас.
На что народ не пойдет, только бы стандартные функции не использовать :)
...
Рейтинг: 0 / 0
13.01.2015, 12:52
    #38853022
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
interbase целые и дробные части числа
miwaonlineНа что народ не пойдет, только бы стандартные функции доку не использовать читать :)поправил. :)
...
Рейтинг: 0 / 0
13.01.2015, 14:29
    #38853185
Fr0sT-Brutal
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
interbase целые и дробные части числа
Exterisroadster я извращенец
Видимо я тоже.)
Код: sql
1.
2.
select substr('6.12',1,position('.' in '6.12')-1),substr('6.12',position('.' in '6.12')+1,20)
from rdb$database


И на машине, где decimal separator выставлен в ",", получим что? Правильно, по лбу.
...
Рейтинг: 0 / 0
13.01.2015, 14:33
    #38853192
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
interbase целые и дробные части числа
Hello, Fr0st-brutal!
You wrote on 13 января 2015 г. 14:31:29:

Fr0st-brutal> И на машине, где decimal separator выставлен в ",", получим что?
> Правильно, по лбу.не по лбу, а в ухо!
NLS клиента серверу пох.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
13.01.2015, 14:43
    #38853206
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
interbase целые и дробные части числа
Мимопроходящийне по лбу, а в ухо!
И это правильно, поскольку отсылать число на сервер только чтобы поделить его на целую и
дробную части это маразм.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
13.01.2015, 14:57
    #38853225
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
interbase целые и дробные части числа
Ivan_PisarevskymiwaonlineНа что народ не пойдет, только бы стандартные функции доку не использовать читать :)поправил. :)
зато работает на разных СУБД, даже в запросах 1С 8.х
а про документацию - согласен
...
Рейтинг: 0 / 0
13.01.2015, 17:31
    #38853441
Fr0sT-Brutal
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
interbase целые и дробные части числа
МимопроходящийNLS клиента серверу пох.

Так я про сервер
...
Рейтинг: 0 / 0
13.01.2015, 18:24
    #38853530
WildSery
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
interbase целые и дробные части числа
Nafзато работает на разных СУБД, даже в запросах 1С 8.хТам нет своих каких-то запросов.
А вот с поддержкой встроенных функций - да, беда.
...
Рейтинг: 0 / 0
14.01.2015, 08:12
    #38853753
roadster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
interbase целые и дробные части числа
Dimitry Sibiryakovотсылать число на сервер только чтобы поделить его на целую и
дробную части это маразмвариант обработки в ХП не приходит в голову?
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / interbase целые и дробные части числа / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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