|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
Привет Double загоняем в decimal (Algorithms.Calculate() возвращает double): Код: c# 1.
Иногда сваливается ошибка: Значение слишком мало или слишком велико для decimal. Подскажите плз как бороться с этим? Результат, то есть Value должно быть строго double (возвращаемое значение функции). ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 15:59 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
Не знаю, само значение Value не превышает 100, а ошибка пишет как будто там запредельное число. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 16:08 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
rigorMortis, зачем здесь приведение к decimal? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 16:18 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
bazile, дело в том, что этот алгоритм Algorithms.Calculate() делал наш товарищ который уволился, это расчёт стоимости, и он везде использовал double, а возвращать мы должны decimal согласно wsdl. Это уже стоит у клиента. Переделка Algorithms.Calculate() чтобы там использовался decimal будет означать что придётся заново тестировать весь алгоритм. Вот я и ищу безопасный способ преобразования double к decimal. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 16:35 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
rigorMortis, Не зря Ваш товарищ уволился (был уволен?). Double нельзя использовать для стоимости. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 16:39 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
Axeleron, не, он сам ушёл. Говорит, алгоритм брал отсюда http://blogs.msdn.com/b/lucabol/archive/2007/12/17/bisection-based-xirr-implementation-in-c.aspx Это понятно что double нельзя. Но что-то надо делать с этим. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 16:48 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
rigorMortisНе знаю, само значение Value не превышает 100, а ошибка пишет как будто там запредельное число. Нужно смотреть не на значение Value, а на входные параметры и на значение Double, который возвращает метод при эксепшене. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 16:57 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
Pallaris, да вот что-то не воспроизводится. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 17:00 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
rigorMortis, ты как воспроизводишь? забацай массив рандомов и гоняй в цикле с выводом в лог ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 17:31 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
AxeleronrigorMortis, Не зря Ваш товарищ уволился (был уволен?). Double нельзя использовать для стоимости. Из каких соображений - нелзя? Вера, законадельство или воспитание запрещает? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 17:47 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
mikronИз каких соображений - нелзя? Из-за особенностей хранения double в памяти. Если ты видишь на экране 42,13, а на самом деле там 42,1299999876, то на операциях эта разница будет выражаться в копейках и рублях, а это уже - ответственность ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 17:54 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
mikronAxeleronrigorMortis, Не зря Ваш товарищ уволился (был уволен?). Double нельзя использовать для стоимости. Из каких соображений - нелзя? Вера, законадельство или воспитание запрещает? Учить матчасть ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 17:59 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
PallarismikronИз каких соображений - нелзя? Из-за особенностей хранения double в памяти. Если ты видишь на экране 42,13, а на самом деле там 42,1299999876, то на операциях эта разница будет выражаться в копейках и рублях, а это уже - ответственность Почему нелзя то я так и не понял из примера. Мне всё равно как оно там внутри на самом деле представлено. Пусть в двоичном коде, електронным зарядом или магнитнитизацией. Если на экране или в отчёте 42,13 то осталное вроде как значения не имеет. Где я не прав? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 18:29 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
Axeleronmikronпропущено... Из каких соображений - нелзя? Вера, законадельство или воспитание запрещает? Учить матчасть Посмотрел на лозунги на немесном наречии, но ответа на мой вопрос не увидал. Почему нельзя то? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 18:32 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
mikronЕсли на экране или в отчёте 42,13 то осталное вроде как значения не имеет. Где я не прав? На экране у тебя 42,13 и таких - тысячи, а в месячном отчете отчисления в налоговую составили вместо 50371 руб - 50369 руб. И уже статья. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 18:33 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
PallarisНа экране у тебя 42,13 и таких - тысячи, а в месячном отчете отчисления в налоговую составили вместо 50371 руб - 50369 руб. И уже статья. А каким образом мы пришли к 50371 руб / 50369 руб? И каким образом всё это связано с машинным представлением данных? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 18:38 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
mikronПочему нельзя то? Потому что это деньги, а деньги любят точный счет. double используется, если точность после запятой неважна. Так понятнее на 'местном наречии'? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 18:40 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
PallarisНа экране у тебя 42,13 и таких - тысячи, а в месячном отчете отчисления в налоговую составили вместо 50371 руб - 50369 руб. И уже статья.а еще проверка на равенство 30 + 12,13 = 42,13 не сработает, упс, счета не сходятся, пошло поехало... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 18:40 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
mikronА каким образом мы пришли к 50371 руб / 50369 руб? И каким образом всё это связано с машинным представлением данных? Потому что, если эта сумма будет суммироваться из множества рублевых с копейками сумм, у вас может получиться разброс в итоговой сумме - в большую или меньшую сторону. Ибо double точности НЕ ГАРАНТИРУЕТ! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 18:42 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
mikronА каким образом мы пришли к 50371 руб / 50369 руб? И каким образом всё это связано с машинным представлением данных? round(42.1299999876, 2) + round(42.1299999876, 2) + round(42.1299999876, 2) и round(42.1299999876 + 42.1299999876 + 42.1299999876, 2) совсем не одно и то же и чем больше таких операций, тем больше расхождение поиграй с калькулятором, раз сразу неочевидно ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 18:43 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
mikronА каким образом мы пришли к 50371 руб / 50369 руб? И каким образом всё это связано с машинным представлением данных?у тебя есть рулетка на 1 метр. Ты можешь отмерить ей километр (допустим, точность твоих рук позволяет это сделать) А теперь представь, что у тебя немножко косячная рулетка, и длиной она 99,5 см Сколько будет "разбег", когда ты отмеришь ей километр? А 10 километров? то-то. Деньги такого не терпят ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 18:46 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
AxeleronmikronПочему нельзя то? Потому что это деньги, а деньги любят точный счет. double используется, если точность после запятой неважна. Так понятнее на 'местном наречии'? Это ваше убеждение. Вы попробуйте аргументами, а не внушением. Почему нелзя? Достаточно привести один пример, где хранение данных в доубле не позволяет достич определённой (на ваш выбор) цели обработки данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 18:47 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
mikronДостаточно привести один пример, где хранение данных в доубле не позволяет достич определённой (на ваш выбор) цели обработки данных.пжалста ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 18:53 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
mikron Достаточно привести один пример, где хранение данных в доубле не позволяет достич определённой (на ваш выбор) цели обработки данных. Вот пример Код: c# 1. 2. 3. 4. 5.
Должно быть 4269000, получаем 4268999,99999594 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 19:00 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
Shocker.Proа еще проверка на равенство 30 + 12,13 = 42,13 не сработает, упс, счета не сходятся, пошло поехало... В этом примере есть две явных операции и одня неявная: сложения, сравнения и приведения. При этом иммено привидение теряет точность. Другими словами мы видим или пишем (42,13) не то что получим в результате машинной обработки. Если же иметь эту операцию приведения в виду, то результат (30 + 12,13) - 42,13 будет условно равен погрешности, которая принимается нами уже на первом шаге неявного приведения. Таким образом если мы согласимся принятъ погрешность приведения то и на этапе сравнения нужно это учитывать. Проблем нет. Это не коим образом не ограничивает приминение доубле. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 19:04 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
AxeleronmikronА каким образом мы пришли к 50371 руб / 50369 руб? И каким образом всё это связано с машинным представлением данных? Потому что, если эта сумма будет суммироваться из множества рублевых с копейками сумм, у вас может получиться разброс в итоговой сумме - в большую или меньшую сторону. Ибо double точности НЕ ГАРАНТИРУЕТ! Не надо так с горячя. гарантирует, но в определённых пределах. так же как и децимал. пределы у каждого свои. Дополню ответ позже. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 19:07 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
mikronДостаточно привести один пример. Пожалуйста: Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 19:14 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
mikron, Надо не спорить, а скорее исправлять где там у себя накосячили пока не обнаружилось ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 19:19 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
Ошибся немного с запятыми выше: Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 19:24 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
AxeleronmikronА каким образом мы пришли к 50371 руб / 50369 руб? И каким образом всё это связано с машинным представлением данных? Потому что, если эта сумма будет суммироваться из множества рублевых с копейками сумм, у вас может получиться разброс в итоговой сумме - в большую или меньшую сторону. А может проблема в суммировании а не в хранении как double? Как вы пришли к выводу что дабл проблема а не операция сложения? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 19:26 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
mikronКак вы пришли к выводу что дабл проблема а не операция сложения? Я где-то разве говорил выше, что приходил к выводу, что double - проблема? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 19:29 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
Shocker.PromikronА каким образом мы пришли к 50371 руб / 50369 руб? И каким образом всё это связано с машинным представлением данных?у тебя есть рулетка на 1 метр. Ты можешь отмерить ей километр (допустим, точность твоих рук позволяет это сделать) А теперь представь, что у тебя немножко косячная рулетка, и длиной она 99,5 см Сколько будет "разбег", когда ты отмеришь ей километр? А 10 километров? то-то. Деньги такого не терпят Если мне известа кривизна рулетки, то и километр я отмерю так-же точно. Но пример неудачный. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 19:31 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
mikronТаким образом если мы согласимся принятъ погрешность приведения то и на этапе сравнения нужно это учитывать. Проблем нет. Это не коим образом не ограничивает приминение доубле.то есть мы ради использования double откажемся от операции прямого сравнения. Будем всегда сравнивать с заданной точностью. Иначе получится как в приведенном мной экселевском файле (а именно это я и привел) - прямое сравнение двух вроде бы одинаковых чисел дает ЛОЖЬ. еще раз - применение неточных типов допустимо только в расчетах с допустимой погрешностью. В финансовых расчетах погрешность недопустима, так как там не используются неточные величины. AxeleronНадо не спорить, а скорее исправлять где там у себя накосячили пока не обнаружилось вишь, старшие товариши и множество статей ему не указ. Пока сам шею не свернет - будет стоять на своем ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 19:31 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
Axeleronmikron, Надо не спорить, а скорее исправлять где там у себя накосячили пока не обнаружилось Я не враг себе, следовать таким советам: меня уволят и будут правы. Но отношения к дискуссии это не имеет. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 19:38 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
mikronменя уволят и будут правы. Чо, так быстро уже? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 19:40 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
AxeleronОшибся немного с запятыми выше: Код: c# 1. 2. 3. 4. 5.
Я уже ответил на похожий пример. Вы исключаете из рассмотрения операции приведения, сложения и сравнения и приходите к выводу что виноват во всём дабл. Может просто такое обращение с даблом недопустимо? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 19:45 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
mikronЯ уже ответил на похожий пример. Вы исключаете из рассмотрения операции приведения, сложения и сравнения и приходите к выводу что виноват во всём дабл. Может просто такое обращение с даблом недопустимо? Давайте лучше Вы покажите почему в моем примере сложенное выражение двух double не равно ожидаемому? И какое обращение с даблом допустимо с Вашей точки зрения? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 19:50 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
Shocker.PromikronТаким образом если мы согласимся принятъ погрешность приведения то и на этапе сравнения нужно это учитывать. Проблем нет. Это не коим образом не ограничивает приминение доубле.то есть мы ради использования double откажемся от операции прямого сравнения. Будем всегда сравнивать с заданной точностью. Иначе получится как в приведенном мной экселевском файле (а именно это я и привел) - прямое сравнение двух вроде бы одинаковых чисел дает ЛОЖЬ. еще раз - применение неточных типов допустимо только в расчетах с допустимой погрешностью. В финансовых расчетах погрешность недопустима, так как там не используются неточные величины. А разве правило, при работе с дабл всегда учитывать точность представления, не входит самые азы обучения программированию? Сравнивать дабл на равенство это вобще моветон и редко допустимо. Но на этом я уже не заостряюсь сдесь. Почему вы исключили операцию сложения хочу спросить? Я бы сказал что и складывать так нельзя, если речь идёт о деньгах. А вот на ограничения использование дабла никак не сказывается. И пересмотрите на досуге ваши убеждения, они силь смахивают на веру неподкреплённую фундаментальными знаниями. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 20:00 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
mikronИ пересмотрите на досуге ваши убеждения, они силь смахивают на веру неподкреплённую фундаментальными знаниями. А Вы изучали в университете в чем разница между числами с плавающей и фиксированной точкой(запятой)? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 20:05 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
mikronИ пересмотрите на досуге ваши убеждения, они силь смахивают на веру неподкреплённую фундаментальными знаниями.Веры тут нет, знаний у меня достаточно, я писал, в том числе, на ассемблере. И я по этим граблям уже ходил. Удачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 20:46 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
AxeleronmikronЯ уже ответил на похожий пример. Вы исключаете из рассмотрения операции приведения, сложения и сравнения и приходите к выводу что виноват во всём дабл. Может просто такое обращение с даблом недопустимо? Давайте лучше Вы покажите почему в моем примере сложенное выражение двух double не равно ожидаемому? И какое обращение с даблом допустимо с Вашей точки зрения? Взгляните со стороны: бы утверждаете, что использование дабла недопустимо, обосновать утверждение не можете, приводите странный пример, и предлагаете мне, показать почему пример не отвечает вашему ожиданию? Я не знаю почему это должно быть лучше и лучше чего, но это был ваш выбор - получите: ошибка в вашем ожидании. Оно просто ошибочно и не обоснованно. Предположим вы хотели спросить: как сложить два дабл числа представляющих цену(amount). Ответ: накопленный результат округлят до точности представления цены и избегать накопление погрешности но единицы измерения. Если вы хотели спросить как сравнить два дабла: только с учётом погрешности. И эти правила также действительны при работе с децимал. Ну и ещё в догонку: децимал тоже floating point. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 20:58 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
Shocker.PromikronИ пересмотрите на досуге ваши убеждения, они силь смахивают на веру неподкреплённую фундаментальными знаниями.Веры тут нет, знаний у меня достаточно, я писал, в том числе, на ассемблере. И я по этим граблям уже ходил. Удачи. Давайте не будем тут мерятся, а то получится как в анекдоте. Вернёмся к теме: Ваше утверждение о непременимости дабле для финансовых вычислений получит подтверждение или останется голословным? Я считаю использование дабла в приведённом примере верным и могу это обосновать: возведение в степень для децимала. Кроме этого обоснования есть ещё очень важный аргумент: скорость вычислений. А вот тот, кто взялся править код у меня вызывает подозрения: он даже не смог самостоятельно справится с ошибкой привидения. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2015, 21:25 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
rigorMortisAxeleron, не, он сам ушёл. Говорит, алгоритм брал отсюда http://blogs.msdn.com/b/lucabol/archive/2007/12/17/bisection-based-xirr-implementation-in-c.aspx Это понятно что double нельзя. Но что-то надо делать с этим.Забавно, там же: Код: c# 1. 2. 3. 4. 5. 6.
То есть Ваш метод Calculate должен возвращать Decimal . ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2015, 08:43 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
mikron, почитайте: Что нужно знать про арифметику с плавающей запятой , - думаю Вам будет полезно. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2015, 08:44 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
skyANAmikron, почитайте: Что нужно знать про арифметику с плавающей запятой , - думаю Вам будет полезно. Я не понял ваш поинт. Вы хотели привисти аргумент в пользу какого-то утверждения? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2015, 10:27 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
mikron, Double для финансовых расчетов не совсем подходит, это точно. Если decimal слишком мал для вас, используйте BigInteger ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2015, 11:11 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
Arm79Если decimal слишком мал откуда столько денег ? может просто ошибку в другом месте искать следует? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2015, 11:46 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
ИзопропилArm79Если decimal слишком мал откуда столько денег ? может просто ошибку в другом месте искать следует? А что вы мне адресуете вопрос? :-) Я вот не знаю, может ТС считает вклад с капитализацией процентов в зимбабвийских долларах. Там и decimal может быть мал :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2015, 11:55 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
ИзопропилArm79Если decimal слишком мал откуда столько денег ? может просто ошибку в другом месте искать следует? А что вы мне адресуете вопрос? :-) Я вот не знаю, может ТС считает вклад с капитализацией процентов в зимбабвийских долларах. Там и decimal может быть мал :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2015, 11:55 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
просто удобнее работать с очень малыми дробными числами в double и очень большими в децемал ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2015, 11:57 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
Arm79А что вы мне адресуете вопрос? :-) процитировалось неудачно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2015, 12:36 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
rigorMortis Код: c# 1.
Конечно, с округлением денег всегда засада, но для избавления от ошибки вместо приведения (decimal) попробуйте варианты: Convert.ToDecimal Decimal.Parse Decimal.TryParse ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2015, 22:18 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
Cat2, имхо, Convert самый годный класс, мне даже последнее время нравится больше, чем Parse, так как по сути, работает он точно так же, но радуют перегрузки по всем фронтам ) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2015, 22:52 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
rigorMortisbazile, дело в том, что этот алгоритм Algorithms.Calculate() делал наш товарищ который уволился, это расчёт стоимости, и он везде использовал double, а возвращать мы должны decimal согласно wsdl. Так что, товарищ и исходники класса Algorithms упер? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2015, 10:01 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
rigorMortisи он везде использовал double, а возвращать мы должны decimal согласно wsdl. Это уже стоит у клиента. Переделка Algorithms.Calculate() чтобы там использовался decimal будет означать что придётся заново тестировать весь алгоритм придётся, ибо доверия к к действующему с просраными исходниками - нет ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2015, 10:32 |
|
Значение слишком мало или слишком велико для decimal - как бороться?
|
|||
---|---|---|---|
#18+
ИзопропилrigorMortisи он везде использовал double, а возвращать мы должны decimal согласно wsdl. Это уже стоит у клиента. Переделка Algorithms.Calculate() чтобы там использовался decimal будет означать что придётся заново тестировать весь алгоритм придётся, ибо доверия к к действующему с просраными исходниками - нетисходники же взяты из открытого источника по ссылке в начале топика ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2015, 11:44 |
|
|
start [/forum/search_topic.php?author=Roma+Vi&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
46ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
98ms |
get tp. blocked users: |
1ms |
others: | 341ms |
total: | 557ms |
0 / 0 |