Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет Abu Antos' ([info]syarzhuk)
@ 2009-01-22 14:06:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Entry tags:code

Хозяйке на заметку
Прошло 52 года с создания транслятора формул, более известного как FORTRAN. Однако даже в наши дни
великий и могучий дотнет не умеет по умолчанию парсить экспоненты. Лечится, правда, тривиально:
вместо decimal.TryParse(Value, out decValue) надо добавлять немного шаманских заклинаний и писать decimal.TryParse(Value, Globalization.NumberStyles.Float, Globalization.CultureInfo.CurrentCulture, out decValue)



(Добавить комментарий)


[info]spamsink
2009-01-22 23:55 (ссылка)
Что значит "парсить экспоненты"? Числа в записи "мантиссаЕэкспонента"?

(Ответить) (Ветвь дискуссии)


[info]syarzhuk
2009-01-23 00:18 (ссылка)
ага

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]spamsink
2009-01-23 01:03 (ссылка)
Какие бывают локальные варианты, кроме десятичной точки/запятой?

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]syarzhuk
2009-01-23 01:11 (ссылка)
http://msdn.microsoft.com/en-us/library/system.globalization.numberstyles.aspx
AllowLeadingWhite, AllowTrailingWhite, AllowLeadingSign, AllowTrailingSign, AllowParentheses, AllowDecimalPoint, AllowThousands, AllowExponent, AllowCurrencySymbol, AllowHexSpecifier

http://msdn.microsoft.com/en-us/library/system.globalization.numberformatinfo.aspx
Currency format. Associated properties are:
CurrencyDecimalDigits, CurrencyDecimalSeparator, CurrencyGroupSeparator, CurrencyGroupSizes, CurrencyNegativePattern, CurrencyPositivePattern, CurrencySymbol.

Number format. Associated properties are:
NumberDecimalDigits, NumberDecimalSeparator, NumberGroupSeparator, NumberGroupSizes, NumberNegativePattern.

Percent format. Associated properties are:
PercentDecimalDigits, PercentDecimalSeparator, PercentGroupSeparator, PercentGroupSizes, PercentNegativePattern, PercentPositivePattern, PercentSymbol.

Ну и до кучи
http://msdn.microsoft.com/en-us/library/system.globalization.numberformatinfo_members.aspx

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]spamsink
2009-01-23 01:33 (ссылка)
Если выбран стиль AllowExponent, то вариантов не так уж много:

The AllowExponent style is used for numeric strings in one of the following forms:
[-] m. dddddd E+ xx
[-] m. dddddd E- xx
[-] m. dddddd e+ xx
[-] m. dddddd e- xx

One or more nonzero digits (m) precede the decimal separator ("."). A minus sign ("-") can precede m. The Type performing the conversion determines the number of decimal places (dddddd) in the string, and maximum and minimum values for xx and m. The exponent (+ / - xx) consists of either a plus or minus sign followed by at least one digit.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]syarzhuk
2009-01-23 15:51 (ссылка)
And your point is?

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]spamsink
2009-01-23 19:11 (ссылка)
Не так страшен черт, как его малюют.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]syarzhuk
2009-01-23 19:32 (ссылка)
Не страшно, конечно, просто удивительно, что TryParse по умолчанию не знает нотации, которая применяется уже больше полувека

(Ответить) (Уровень выше)


[info]beshenov
2009-01-23 00:09 (ссылка)
А что это за фигня такая? C#?

(Ответить) (Ветвь дискуссии)


[info]syarzhuk
2009-01-23 00:21 (ссылка)
Ага. Причём я-то пишу исключительно на T-SQL, но иногда приходится читать чужой код, написанный на этом (в принципе, неплохом) потомке уёбищного С

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]beshenov
2009-01-23 19:48 (ссылка)
Потомок Java, в принципе.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]syarzhuk
2009-01-23 20:23 (ссылка)
Весь идиотизм (точки с запятой, отсчёт с нуля, case sensitivity, автоматический перевод из любого типа в int) в этих языках идёт от тех аппаратных проблем, которые Ричи обходил в 1972 году. Как раз то, что в C# взяли из Java - неплохо (а то, что написали по новой - ещё лучше)

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]beshenov
2009-01-23 20:43 (ссылка)
Ну да, FORTRAN лишен многих подобных особенностей.

(Ответить) (Уровень выше)