Существует ли более-иенее штатная возможность произодить вычисления, требующие точности, превосходящей Double?
Хотелось бы знаков этак 25 после запятой...
MSDN писал(а):Точность: 28-29 значимых цифр
MIT писал(а):Хм...MSDN писал(а):Точность: 28-29 значимых цифр
В Decimal получилось засунуть 0,0000012777564919161939830017. Это хорошо.
А почему мне кажется, что там какие-то проблемы с вычислениями быть могут?
А поможет? Может программу освятить лучше, а то если креститьтя у каждой машины - накладно выходит?Ronin писал(а):Когда кажется, креститься надо
Dim num As Decimal = Decimal.Parse("46.202566", System.Globalization.CultureInfo.GetCultureInfo("nl-NL"))
Dim num As Decimal = Decimal.Parse("46.202566", System.Globalization.CultureInfo.GetCultureInfo("en-US"))
Dim num As Decimal = Decimal.Parse("46,202566", System.Globalization.CultureInfo.GetCultureInfo("ru-RU"))
Dim num As Decimal = Decimal.Parse("46,202566")
Dim num As Decimal = Decimal.Parse("46.202566", System.Globalization.CultureInfo.GetCultureInfo("ru-RU"))
Dim num As Decimal = Decimal.Parse("46.202566")
Dim num As Decimal = Decimal.Parse("46,202566", System.Globalization.CultureInfo.GetCultureInfo("en-US"))
Проблема в том, мой дорогой, чтоImKarlas писал(а):Ну ставь культуру "en-US" и все. В чем проблема?
И это еще ничего, а вот после подобной конвертации от "0.000000638878236870256" останется 638878236870256D. Оно мне надо?ImKarlas писал(а):- не работает. выводит 46202566
Ты наверно не внимательно прочитал мой пост:ImKarlas писал(а):Или заменяй в строке точку на запятую.
На англоязычных машанах он не робатает.MIT писал(а):Код со строчной подменой точки на запятую не катит - он во-первых ущербен изначально, а во-вторых может не работать при разный региональных настройках.
MIT писал(а):Проблема в том, мой дорогой, чтоИ это еще ничего, а вот после подобной конвертации от "0.000000638878236870256" останется 638878236870256D. Оно мне надо?ImKarlas писал(а):- не работает. выводит 46202566
MIT писал(а):В процессе раздумий был рожден следующий код:однако у меня он просто проглатывал разделитель, в результае чего получалось 46202566D.
- Код: Выделить всё
Dim num As Decimal = Decimal.Parse("46.202566", System.Globalization.CultureInfo.GetCultureInfo("nl-NL"))
Откуда - не важно, факт в том что число всегда имеет разделителем точку.iGrok писал(а):Числа откуда берутся?
Нет, я себе не противоречу. Необходим способ, который при любых региольнальных настройках из строчки (в которой всегда используется точка) сделает число (без ошибок и с сохраненнием знака, положения разделителя и точности)iGrok писал(а):Ты, похоже, сам себе противоречишь. То ты говоришь, что изначально число может быть ТОЛЬКО с точкой, то говоришь, что нужна универсальность.
Блин, может я сильно туплю, но вчера это не работало... Сегодня работает.iGrok писал(а):Если только с точкой - ставь "en-US". Если нужна универсальность, тогда откуда у тебя "только точка"?
А вот MSDN, кажется, говорит что точка.Alec писал(а):Как ты думаешь, в в Нидерландах ("nl-NL")применяется какой разделитель?
MIT писал(а):Блин, может я сильно туплю, но вчера это не работало... Сегодня работает.iGrok писал(а):Если только с точкой - ставь "en-US". Если нужна универсальность, тогда откуда у тебя "только точка"?
...
З.Ы. Пойду-ка лучше я посплю немного.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 68