Удаление конечных нулей в двойной переменной

у меня есть DLL, которая определяет множество методов, которые все возвращают double, и я не хочу ничего в ней менять. Проблема заключается в том, что когда я передаю этим методам небольшие числа, возвращаемые значения содержат слишком много завершающих нулей, поскольку возвращаемое значение равно double, например 9*9=810000000000 (это не десятичная точка, это фактическая емкость переменной Double). я хочу нормальное поведение 9*9=81

Как я могу избавиться от этих завершающих нулей, не меняя DLL?


person Java Player    schedule 25.09.2012    source источник
comment
Разделите результат на 10000000000 на клиенте.   -  person Eric J.    schedule 26.09.2012
comment
Какой язык вы используете? Вы должны пометить свой вопрос соответствующим образом.   -  person assylias    schedule 26.09.2012
comment
Дублирование stackoverflow.com/questions/1786497/ ?   -  person Al W    schedule 26.09.2012
comment
Что именно вы подразумеваете под избавлением от конечных нулей? Вы хотите изменить числовое значение результата или просто способ его представления в виде текста? Какие операции должны выполнять эти методы? За 9*9 вы получаете 810000000000 или 81.0000000000?   -  person Keith Thompson    schedule 26.09.2012
comment
да, как это представлено, и когда я попробовал 9 * 9, я получил 81000000000   -  person Java Player    schedule 26.09.2012


Ответы (1)


(Возможно, ваш пример должен включать десятичную точку между 81 и всеми этими нулями?)

Конечно, если результатом является двойное число, конечные нули имеют значение только тогда, когда вы преобразуете содержащееся в нем число в текст?

В этом случае все, что вам нужно сделать, это отформатировать этот текст в том месте, где он вам нужен.

Не зная, на каком языке вы работаете, я не могу предложить вам точный синтаксис этой команды форматирования, но быстрый поиск здесь должен помочь вам в этом.

person Xav    schedule 25.09.2012
comment
ОП обновил теги; язык С++. Но я все еще не уверен, что спрашивает ОП; см. мой комментарий к вопросу. - person Keith Thompson; 26.09.2012
comment
Я начал с предположения, что отсутствие десятичной точки было опечаткой, и второе предположение, что он в какой-то момент выводил число как текст. Я не уверен, что это дубликат вопроса sprintf, хотя этот ответ, безусловно, может помочь ОП. - person Xav; 26.09.2012