Почему SAP Business One SDK использует двойные деньги? - PullRequest
1 голос
/ 26 апреля 2019

Я всегда читал, что должен использовать decimal или аналогичный для денежных и финансовых расчетов ( пример ). Однако, насколько я вижу, все Business One SDK использует double s? Это нормально? Должен ли я преобразовывать двойные значения в десятичные числа каждый раз, когда я делаю вычисления, чем обратно в двойное значение Если я хочу установить его для объекта API (что я делаю в настоящее время)?

enter image description here

Примечание. В базе данных SQL для этих значений используется numeric(19,6).

1 Ответ

0 голосов
/ 29 апреля 2019

Несмотря на то, как это может выглядеть в Visual Studio, SAP SDK на самом деле не является .Net-нативной библиотекой - это .NET-оболочка над dll C / C ++ с использованием COM Interop.

Надеюсьне думаю, что decimal является нативным типом в C / C ++, и, конечно, это не базовый / встроенный тип в .Net (в отличие, например, string, int, double и т. д.) - он также медленнееиспользовать, потому что нет внутренних инструкций ЦП для десятичных операций (в отличие от базовых типов).

Поскольку в C / C ++ нет эквивалента, его нужно будет преобразовать в тип, который может быть понят базовой библиотекой -и этот тип, скорее всего, будет double в любом случае.

...