Я работаю с базой данных, у которой есть ограничение, которое может хранить только (числовой) тип данных : double . Что я хочу сделать, это выбрать номер для определенной строки и поместить его в запрос HTTP. Проблема заключается в том, что я не могу знать, должно ли это число иметь или не иметь десятичные дроби.
Например, если double является идентификатором, у меня не может быть никакого вида форматирования, так как сайт, который получает HTTP-запрос , будет сбит с толку. Обратите внимание на следующие примеры:
site.com/showid.php?id=12300000 // OK
site.com/showid.php?id=1.23E7 // Bad; scientific notation
site.com/showid.php?id=12300000.0 // Bad; trailing decimal
Решением этой проблемы будет приведение к длинному . Игнорируя проблему переполнения длинных, она решает научную нотацию и (очевидно) конечный десятичный. Это может быть приемлемым решением, но было бы неплохо, если бы код не предполагал, что это идентификаторы, с которыми мы имеем дело. Что, если, например, я должен был запросить сайт, который показывает карту, а число - это координаты, где десятичные дроби очень важны? Тогда приведение к длинному больше не приемлемо.
Короче говоря;
- Если у двойного нет десятичных дробей, не добавляйте конечный десятичный.
- Если есть десятичные дроби, сохраните их все.
- Ни в одном случае не должно быть научных обозначений или тысяч разделителей.
Это решение будет перенесено на C # и Java, поэтому я принимаю ответы на обоих языках.
(О, и я понятия не имел, как назвать этот вопрос, не стесняйтесь переименовывать, если у вас есть что-то лучше.)