Для типа данных SQL Server Money требуется большая точность.

Я работаю над этой старой базой данных SQL Server, в которой хранятся числовые значения в типе данных MONEY. Это было хорошо в течение многих лет, теперь для некоторых преобразований валюты нам нужно до 10 знаков после запятой. Мы изучаем возможность преобразования типа данных MONEY в тип DECIMAL.

Я вижу, что поле MONEY эквивалентно DECIMAL(19, 4). Было бы безопасно использовать более широкое DECIMAL(25, 10) для размещения 10 десятичных цифр?

Что, если мы хотим обеспечить больше места для будущих запросов, каков будет предел, который больше не подходит для классического приложения ASP, построенного на базе данных (с использованием типа данных Double)?

Спасибо


person ab_732    schedule 15.06.2015    source источник
comment
вау... это действительно крутая проблема. с какой валютой вы работаете, что вам нужно 10 знаков после запятой?   -  person Pablo Santa Cruz    schedule 16.06.2015
comment
1 йена = 0,00810349 долларов США   -  person ab_732    schedule 16.06.2015


Ответы (1)


вы должны определить тип как десятичный (25,10), который может удерживать федеральный дефицит с точностью до 10 цифр. (25 цифр с десятью после запятой).

person benjamin moskovits    schedule 15.06.2015
comment
За исключением того, что тип данных double Classic ASP может обрабатывать только 15 значащих цифр. - person Dijkgraaf; 16.06.2015
comment
Что может быть лучшим решением, чем @Dijkgraaf? - person ab_732; 16.06.2015
comment
Не используйте классический ASP ;-) Возможно, используйте ASP.NET, где у вас есть десятичный тип с 29 значащими цифрами. - person Dijkgraaf; 16.06.2015
comment
Двойник - это научное число. У него есть показатель степени и мантисса, и он отлично подходит для науки, но будет округляться совсем иначе, чем десятичный. - person benjamin moskovits; 16.06.2015