Собственно появился у меня такой вопрос: зачем в .NET в качестве разделителя целой и дробной части в числах используется string. Что, char было недостаточно? Я, конечно, понимаю, что в Windows Control Panel тоже используется строка, но вопрос в том, а зачем это надо???? Лично я не знаю ни одного языка в котором бы использовалось что-нибудь кроме точки или запятой. Или БГ это оставил на будущее — вдруг внеземеной разум с другими правилами?
Здравствуйте, sfsoft, Вы писали:
S>Собственно появился у меня такой вопрос: зачем в .NET в качестве разделителя целой и дробной части в числах используется string. Что, char было недостаточно? Я, конечно, понимаю, что в Windows Control Panel тоже используется строка, но вопрос в том, а зачем это надо???? Лично я не знаю ни одного языка в котором бы использовалось что-нибудь кроме точки или запятой. Или БГ это оставил на будущее — вдруг внеземеной разум с другими правилами?
Здравствуйте, sfsoft, Вы писали:
S>Собственно появился у меня такой вопрос: зачем в .NET в качестве разделителя целой и дробной части в числах используется string. Что, char было недостаточно? Я, конечно, понимаю, что в Windows Control Panel тоже используется строка, но вопрос в том, а зачем это надо???? Лично я не знаю ни одного языка в котором бы использовалось что-нибудь кроме точки или запятой. Или БГ это оставил на будущее — вдруг внеземеной разум с другими правилами?
А зачем изобретать ограничения на пустом месте? Чтобы потом мучительно придумывать способ их обойти?
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>А зачем изобретать ограничения на пустом месте? Чтобы потом мучительно придумывать способ их обойти?
Я просто на днях пытался написать аналог TCurrencyEdit от Delphi (RX) для .NET'а. Так вот с разделителем и замучился. Так и пришлось обрезать до char. Иначе ерунда получается при проверке допустимого кода символа.
Здравствуйте, sfsoft, Вы писали: S>Я просто на днях пытался написать аналог TCurrencyEdit от Delphi (RX) для .NET'а. Так вот с разделителем и замучился. Так и пришлось обрезать до char. Иначе ерунда получается при проверке допустимого кода символа.
Хм. А если я поставлю для валюты разделитель "руб. "? Не надо проверять коды символов на допустимость.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, sfsoft, Вы писали: S>Тоже хм. А когда делать валидацию ввода? OnExit? И что должно быть??? Делать SetFocus, если неправильный ввод или MessageBox???
Я в таких случаях предпочитал делать шрифт красным при ошибках парсинга и вешать на контрол тултип с объяснением.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>Хм. А если я поставлю для валюты разделитель "руб. "? Не надо проверять коды символов на допустимость.
Это не разделитель. Разделитель — точка, запятая, и т.д.
S>>Хм. А если я поставлю для валюты разделитель "руб. "? Не надо проверять коды символов на допустимость. G> Это не разделитель. Разделитель — точка, запятая, и т.д.
Почему не разделитель? "5 руб. 75 коп." — вполне себе разделитель разрядов.
Здравствуйте, Mamut, Вы писали:
S>>>Хм. А если я поставлю для валюты разделитель "руб. "? Не надо проверять коды символов на допустимость. G>> Это не разделитель. Разделитель — точка, запятая, и т.д.
M>Почему не разделитель? "5 руб. 75 коп." — вполне себе разделитель разрядов.
"Почему" — это к философам. По сути — открываем "Языки и настройки", идем на вкладку "Денежная единица". И что же может там увидеть внимательный читатель? А он может там увидеть два выпадающих списка: напротив самого верхнего написано "Обозначение денежной единицы" и в России там значение "руб.", напротив четвертого сверху написано "Разделитель целой и дробной части числа", там в разных странах стоят разные знаки.
На основании этих косвенных признаков можно сделать вывод: "руб." — обозначение денежной единицы, "точка\запятая" — разделитель.
Обоснуете обратное?
Здравствуйте, glyph, Вы писали: G> На основании этих косвенных признаков можно сделать вывод: "руб." — обозначение денежной единицы, "точка\запятая" — разделитель. G> Обоснуете обратное?
По этим признакам делать какие-то выводы бессмысленно. Я — пользователь. Вы пишете для меня. Если я решил, что я хочу выводить числа в виде "100ёпрст125", то будьте любезны соответствовать. А по различным вкладкам региональных настроек можно все что угодно, как по кофейной гуще, доказать. Вон, к примеру, десять лет в Росии зимнего времени не было.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>По этим признакам делать какие-то выводы бессмысленно. Я — пользователь. Вы пишете для меня. Если я решил, что я хочу выводить числа в виде "100ёпрст125", то будьте любезны соответствовать. А по различным вкладкам региональных настроек можно все что угодно, как по кофейной гуще, доказать. Вон, к примеру, десять лет в Росии зимнего времени не было.
Гм, мои 5копеек:
ТО, что ВЫ пользователь, ещё не говорит в пользу того, что рубю — это разделитель разрядов.
Если называть вещи своими именами, то АТ нужно реализовать так это редактор с валидацией по заданному регэкспу, и тогда отпадут все проблемы.
ЗЫ, в своё время, меня подобная поделка на Делфи много раз спасала, крайне полезная штука.