Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Отобразить ноль перед разделителем десятичной части числа / 25 сообщений из 31, страница 1 из 2
20.02.2013, 05:44
    #38158335
dar3000
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отобразить ноль перед разделителем десятичной части числа
число 0.5 отображается на странице как .5
Поискал... ничего толковее fm999990D99999 не нашел. Но ведь в таком варианте целые числа отображаются с разделителем%(, т.е 1 отобразится как 1., что не есть гуд.

Интересно, чем разработчикам oracle помешал ноль перед разделителем десятичной части числа? Хотя сами в Oracle SQL Developer ноль в таком случае отображают.

Кроме того, есть маска "B"... что мешает сделать маску... пусть "Z" для включения режима отображения нуля перед десятичной частью?

А может уже есть в новых версия oracle такая возможность и я не знаю о ней?

PS. Кстати, а что значит "fm" в маске?
...
Рейтинг: 0 / 0
20.02.2013, 07:14
    #38158358
Отобразить ноль перед разделителем десятичной части числа
про какую страницу речь, друже? Любое отображение данных на экране - дело клиентского ПО. Причем тут разработчики оракла?
...
Рейтинг: 0 / 0
20.02.2013, 07:22
    #38158364
Отобразить ноль перед разделителем десятичной части числа
dar3000,

про возможности и fm-модификатор в доке читать не пробовал? Или ты как истинный русский человек - инструкцию читаешь лишь тогда, когда уже ничто другое не помогает?
...
Рейтинг: 0 / 0
20.02.2013, 10:51
    #38158536
dar3000
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отобразить ноль перед разделителем десятичной части числа
Добрый Э - Эхdar3000,

про возможности и fm-модификатор в доке читать не пробовал? Или ты как истинный русский человек - инструкцию читаешь лишь тогда, когда уже ничто другое не помогает?

Не поверишь, читал эту доку и в первоисточнике и в трех других вариантах... Не догадался я, бестолковый, что надо не "Table 2-14 Results of Number Conversions" смотреть, а "Table 2-15 Datetime Format Elements". Хотя казалось бы здесь Number, а там Datetime...

Спасибо, тебе мил-человек, что помог мне глаза помозолить.
...
Рейтинг: 0 / 0
20.02.2013, 10:57
    #38158558
dar3000
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отобразить ноль перед разделителем десятичной части числа
Добрый Э - Эхпро какую страницу речь, друже? Любое отображение данных на экране - дело клиентского ПО. Причем тут разработчики оракла?

Да вряд ли тут дело в клиенте. С чего это бы клиенту нули съедать, именно перед запятой - делать ему нечего больше что ли?
Я вот смотрю в книжецу Санжей Мишра со-товарищи и вижу что там тоже такое же. Главное в тексте нолики как полагается, а в выводе результата без нулей - одни запятые торчат. Неплохая книжка и на тебе...
Думается это злобные америкосы специально так задумали, чтобы их с русскими не путали...
...
Рейтинг: 0 / 0
20.02.2013, 11:26
    #38158613
Отобразить ноль перед разделителем десятичной части числа
ещё раз: отображение информации на экране - дело клиентского приложения. sqlplus, если что, это тоже клиентское приложение. Формат хранения же числа на сервере не имеет ничего общего с тем, что ты видишь на экране. Но, чтобы ты увидел число на экране, клиентское ПО (будь то твоя самописанная программа, или sqlplus, или pls/sql developer) должно по-любому его преобразовать как-то в текстовый вид и показать на экране (распечатать на принтере и т.д и т.п., нужно выбери сам) именно в текстовом формате. Если тебя не удовлетворяет то, как это делает твое клиентское ПО, будь добр позаботься сам о "внешнем виде" числа посредством явного to_chat с указанием нужного формата и, если надо, последующей доработкой полученного "напильником". Где напильник - достаточно широкий арсенала встроенных строковых функций Oracle.
...
Рейтинг: 0 / 0
20.02.2013, 11:26
    #38158614
Отобразить ноль перед разделителем десятичной части числа
...
Рейтинг: 0 / 0
20.02.2013, 11:57
    #38158660
GaraZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отобразить ноль перед разделителем десятичной части числа
попробуй выполнить
alter session set nls_numeric_characters=".,"
перед отправкой запроса на сервер
...
Рейтинг: 0 / 0
20.02.2013, 12:11
    #38158697
Vint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отобразить ноль перед разделителем десятичной части числа
GaraZ,
нафига козе баян? или звизданул не подумав?)
...
Рейтинг: 0 / 0
20.02.2013, 12:15
    #38158701
GaraZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отобразить ноль перед разделителем десятичной части числа
хз
была у меня такая проблема в fastreports
по-моему я ее так решал
может и путаю
плохо помню просто
...
Рейтинг: 0 / 0
20.02.2013, 12:16
    #38158705
GaraZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отобразить ноль перед разделителем десятичной части числа
у меня там эта трабла была именно из-за разделителя
...
Рейтинг: 0 / 0
20.02.2013, 13:31
    #38158896
orawish
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отобразить ноль перед разделителем десятичной части числа
dar3000Добрый Э - Эхпро какую страницу речь, друже? Любое отображение данных на экране - дело клиентского ПО. Причем тут разработчики оракла?

Да вряд ли тут дело в клиенте. С чего это бы клиенту нули съедать, именно перед запятой - делать ему нечего больше что ли?
Я вот смотрю в книжецу Санжей Мишра со-товарищи и вижу что там тоже такое же. Главное в тексте нолики как полагается, а в выводе результата без нулей - одни запятые торчат. Неплохая книжка и на тебе...
Думается это злобные америкосы специально так задумали, чтобы их с русскими не путали...
если запрос с сервера возвращает число, то дело в его (числа) представлении зависит исключительно от клиента.
напрягитесь..
у строкового представления числа формат есть, а у числа нет формата.
есть значение, могут быть шкала и точность, а формата нет (закон природы ).
...
Рейтинг: 0 / 0
20.02.2013, 15:29
    #38159179
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отобразить ноль перед разделителем десятичной части числа
orawishу числа нет формата.
есть значение, могут быть шкала и точность, а формата нет (закон природы ).
Вообще-то это не совсем так.
Точнее - совсем не так, поскольку внутреннее представление любых данных имеет свой формат.
Другой вопрос, что формат хранения (числа) и формат представления числа (в виде строки) пользователю совершенно перпендикулярны друг другу.
...
Рейтинг: 0 / 0
20.02.2013, 15:34
    #38159192
orawish
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отобразить ноль перед разделителем десятичной части числа
andrey_anonymousorawishу числа нет формата.
есть значение, могут быть шкала и точность, а формата нет (закон природы ).
Вообще-то это не совсем так.
Точнее - совсем не так, поскольку внутреннее представление любых данных имеет свой формат.
Другой вопрос, что формат хранения (числа) и формат представления числа (в виде строки) пользователю совершенно перпендикулярны друг другу.
ок, ок.
..нет формата, кроме внутреннего
:)
...
Рейтинг: 0 / 0
20.02.2013, 16:51
    #38159391
Артем П.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отобразить ноль перед разделителем десятичной части числа
вот тут все хорошо уже сказано было
Тупость неискоренима 3982274
а так
Код: plsql
1.
SELECT TO_CHAR(:число, 'TM','nls_numeric_characters=''. ''') FROM DUAL
...
Рейтинг: 0 / 0
21.02.2013, 03:51
    #38160032
dar3000
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отобразить ноль перед разделителем десятичной части числа
Э-эх, добрый, ты чиловек… Только одной доброты мало. Ну подумай ты сам, что OracleSQLDeveloper, то самое клиентское ПО, которое ты перебираешь, отображает все отлично. А вот браузер, тоже клиентское ПО, отображает по «американскому стандарту» – без ведущего нуля. Причем заметь, OSD – бесплатное ПО, а Оракл тянет на десятку-другую килобакс и его функционал to_char надо дорабатывать «напильныком», так как ни одна маска не удовлетворяет – то разделитель дробной части впереди числа, то позади. Это прямо как хвост вытащим, нос увязнет, нос вытащим, хвост увязнет…
А вот и «напильник»:
Код: sql
1.
rtrim(to_char(a, 'fm9990d999'), '.,')


Только меня это не устраивает. Понятно, что несложно набить ее ручками. Да вот только пользователь наверное будет не очень рад, когда для увеличения числа разрядов после запятой или перед надо будет звать программиста для замены формата маски, если будет число с 4 нулями после запятой… Тогда и рождаются такие перлы ‘fm999999999990D9999999999999’. Очень изящно.

Почитал ссылку 3982274 , полностью согласен с ТС. Тему поднимали в 2007, почти 8 лет назад. И за это время не могли сделать такую малость. Да нафиг оно им надо. Разработчикам ПО стоимостью под миллион рублев не до этого. Маркетинг однако… За ноль никто не заплатит, большинство уже привыкло, да и вновь подгребающие изумляются только ОДИН раз, а потом тоже привыкают. А может мне тоже по коммерчески к клиенту подойти. Ты, дорогой клиент, купил за 10-20 килобаксов Оракл, не нравиться тебе отсутствие нуля в браузере – плати еще 1000 баксов и будет тебе ноль. Только такая коммерция дурно пахнет.

Читая некоторые опусы, иногда приходишь к мысли, а чего это оракл вообще ввел дефолтное преобразование из внутреннего формата, да вдобавок есть такая функция to_char()? Ибо нефиг, это же по-Доброму клиентское дело, и надо было оставить двоичное представление, чтобы программисту Oracle было чем занятся, ведь все остальное Oracle сделает сам.

Всем спасибо. Будем знать.
...
Рейтинг: 0 / 0
21.02.2013, 03:53
    #38160033
dar3000
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отобразить ноль перед разделителем десятичной части числа
PS. А вообще конечно темы надо называть содержательнее. Не чайниковский бы вопрос 3982274 , глядишь, и лишний раз не спрашивал
...
Рейтинг: 0 / 0
21.02.2013, 05:34
    #38160037
Отобразить ноль перед разделителем десятичной части числа
dar3000,

да, правильно тут подметили - Тупость неискоренима...


Оракл что OracleSQLDeveloper-у, что твоему "браузеру" - отдает число в абсолютно одинаковом виде... Причем, по твоим же словам, OracleSQLDeveloper (продукт так ненавидимым тобой ораклом) - выдает на экране корректный (с твоей точки зрения) результат, а браузер - нет. Так причем тут оракл, если твой браузер не может нормально отобразить число?
...
Рейтинг: 0 / 0
21.02.2013, 10:18
    #38160219
Артем П.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отобразить ноль перед разделителем десятичной части числа
dar3000функционал to_char надо дорабатывать «напильныком», так как ни одна маска не удовлетворяет – то разделитель дробной части впереди числа, то позади.
...
пользователь наверное будет не очень рад, когда для увеличения числа разрядов после запятой или перед надо будет звать программиста для замены формата маски, если будет число с 4 нулями после запятой…

а чем вас собственно не устраивает стандартная маска TM, которая возвращает только значащие разряды? то есть разделителей в начале или конце полученной строки стоять не будет?
а nls_numeric_characters позволяет задавать разделитель.

если в тз было прописано что на клиенте числа должны выводиться с двумя знаками после запятой и никак иначе, а пользователю вдруг захотелось четыре, то он будет рад позвать программиста)
...
Рейтинг: 0 / 0
21.02.2013, 10:38
    #38160253
dar3000
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отобразить ноль перед разделителем десятичной части числа
Добрый Э - Эх,
Звону много, а толку мало.
Причем здесь оракл? Клиент, говорите, "балует"? Ну так где же ваши рекомендации клиенту? Многое и многие здесь ссылаются к интерпретациям to_char(). Хотя, интерпетацией должна как раз заниматься to_char(). Это по-вашему функция со стороны клиента и оракл здесь не причем?

Артем П.[а чем вас собственно не устраивает стандартная маска TM, которая возвращает только значащие разряды? то есть разделителей в начале или конце полученной строки стоять не будет?
Попробовал ваш вариант в OSD
Код: sql
1.
SELECT TO_CHAR(0.5, 'TM','nls_numeric_characters=''. ''') FROM DUAL


результат .5
...
Рейтинг: 0 / 0
21.02.2013, 11:36
    #38160344
123йй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отобразить ноль перед разделителем десятичной части числа
dar3000,

разберитесь с какой стороны вы будете преобразовывать число в строку.
если на сервере то to_char, если на клиенте то каким-то другим функционалом клиента а сервер вам будет отправлять число. А на ваше "хочу 4 знака" всеравно придется менять там где преобразовываете
...
Рейтинг: 0 / 0
21.02.2013, 11:52
    #38160371
Vint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отобразить ноль перед разделителем десятичной части числа
dar3000,
это уже не тупость - это идиотизм . так яснее? to_char функция сервера для преобразования числа в строку. никакого отношения к клиенту не имеющая. после преобразования клиенту возвращается уже строка,а не число. снимись с ручника, если нет базового представления о типах данных, многозвенных приложениях и вообще о программировании - стоит поменять проф ориентацию.
...
Рейтинг: 0 / 0
26.02.2013, 07:50
    #38165775
dar3000
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отобразить ноль перед разделителем десятичной части числа
Vint,

Чей идиотизм? Если вы поняли функцию to_char неоракловой, то WhoIsWho. Я нигде не утверждал, что to_char() - функция клиента. Это мне Добрий Эх все про клиента парил. И вы туда же.

Не понимаете сути вопроса - не лезьте со своими советами. Давно пора ТС давать возможность банить (лишать возможности отвечать) некоторых рьяных "автоответчиков" от которых никакого толку.
...
Рейтинг: 0 / 0
26.02.2013, 08:11
    #38165781
Отобразить ноль перед разделителем десятичной части числа
dar3000Это мне Добрий Эх все про клиента парил.И, видимо, "метал бисер пред свиньёй"©.

dar3000 Давно пора ТС давать возможность банить (лишать возможности отвечать) некоторых рьяных "автоответчиков" от которых никакого толку.А после сидеть и ждать ответа от себе подобных?

З.Ы.
Смотрю, от твоей головы тоже толку не особо много. И используешь ты её, скорее всего, как в анекдоте - для "носить шляпу" и "я в неё кушаю" ;)
З.З.Ы.
И пусть меня забанят, но если человек еблан, то это - навсегда
...
Рейтинг: 0 / 0
26.02.2013, 08:18
    #38165783
dar3000
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отобразить ноль перед разделителем десятичной части числа
Добрый Э - Эх,

Не утруждай себя ответами. Я тебе уже несколько раз сказал - толку нет от твоих ответов. Не понимаешь что ли? А оскорблять - ума много не надо...
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Отобразить ноль перед разделителем десятичной части числа / 25 сообщений из 31, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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