Я использую библиотеку буферов протокола Google в моей постоянной системе хранения и хочу сохранить значения валюты, но я не уверен, что типы с плавающей запятой, предоставляемые фотографией (float/double), достаточно хороши. Есть ли недостатки для хранения всех моих валютных значений в виде строк (например, для хранения «0.10» вместо 0,1), а затем с помощью функции Convert.ToDecimal при получении моих данных и необходимости выполнять арифметику?Каковы недостатки хранения десятичных знаков в виде строк в proto3?
ответ
Вы правильно в предвидя, что float/double
типов данных не подходит для «валюты!»
Рассмотрим, как базы данных SQL (и, гм, COBOL
программы ...) часто магазин «валюты» ценности: они используют десятичную представление какой-то. Например, настоящая программа COBOL
может использовать тип данных с двоичным кодом (BCD). База данных Microsoft Access использует «масштабированное целое число»: значение доллара и центов, умноженное на 10 000, дающее фиксированное (!) «4 цифры справа от десятичной дроби».
Для непосредственных целей этого вопроса, я бы определенно хранить значения в виде строк, а затем дать очень серьезные мысли на количество цифр, которые будут сохранены и просто, как обращаться с «округление» на этот номер цифр. (Например, существует алгоритмы, такие как “ ’ банкира сек округления. ”)
размера“ хранения? ” Вы дон ’ t уход об этом. Что вы do заботитесь о том, что если конкретный клиент (или аудитор ...) фактически суммирует все цифры в печатном виде, нижняя строка на этом листе бумаги согласится. (по крайней мере, в пределах одного копейки).
Чисто, как вопрос интереса, IBM POWER CPU имеют десятичный математический сопроцессор в наши дни. Очень удобно для финансовых приложений, дает большое ускорение. И удивление удивляет, что IBM продает много мэйнфреймов в финансовый мир! – bazza
- 1. Использование строк десятичных знаков в python
- 2. Тип поля MySQL для хранения десятичных знаков
- 3. формат десятичный для хранения 6 десятичных знаков
- 4. Формат строк в Mysql сжат, каковы недостатки?
- 5. Как XOR два символа в виде десятичных знаков в BASH
- 6. Тип данных для хранения высокоточных десятичных знаков в MySQL
- 7. панда превращающих поплавков строк без десятичных знаков
- 8. печать целых чисел в виде символов, десятичных знаков, поплавков
- 9. Каковы недостатки хранения денежных ценностей как центов/второстепенных единиц?
- 10. Каковы преимущества и недостатки хранения файлов в базе данных?
- 11. Обнаружение десятичных знаков в vim
- 12. Сравнение десятичных знаков в PHP
- 13. Игнорирование десятичных знаков в VB
- 14. Повторение десятичных знаков в PHP
- 15. Печать десятичных знаков в C++
- 16. Учет десятичных знаков в поплавке
- 17. Последовательность десятичных знаков в Excel
- 18. Сортировка десятичных знаков в словаре
- 19. Ограничение десятичных знаков в массиве
- 20. Сравнение десятичных знаков в python
- 21. Сокращение десятичных знаков в Delphi
- 22. Форматирование десятичных знаков в Java
- 23. округление десятичных знаков в Django
- 24. Точность десятичных знаков в Python
- 25. Удаление десятичных знаков в больших данных
- 26. Недостатки хранения всех «вещей» в центральной таблице
- 27. Замена десятичных знаков
- 28. Смещение десятичных знаков в таблице SQL
- 29. wkhtmltopdf процент десятичных знаков
- 30. Печать произвольной точности десятичных знаков в python
различия в представлении –
Также требуется гораздо больше памяти для обработки, чем нужно. –