【发布时间】:2021-01-05 03:28:20
【问题描述】:
我总是读到我应该使用 decimal 或类似的东西来进行金钱和财务计算 (example)。但是,据我所知,所有 Business One SDK 都使用doubles?这个可以吗?如果我想为 API 对象设置它(我目前所做的),我是否希望每次进行计算时都将双精度值转换为小数,而不是返回双精度值?
注意:SQL 数据库将numeric(19,6) 用于这些值。
【问题讨论】:
标签: sapb1
我总是读到我应该使用 decimal 或类似的东西来进行金钱和财务计算 (example)。但是,据我所知,所有 Business One SDK 都使用doubles?这个可以吗?如果我想为 API 对象设置它(我目前所做的),我是否希望每次进行计算时都将双精度值转换为小数,而不是返回双精度值?
注意:SQL 数据库将numeric(19,6) 用于这些值。
【问题讨论】:
标签: sapb1
尽管它在 Visual Studio 中看起来像这样,但 SAP SDK 并不是真正的 .Net 原生库 - 它是使用 COM 互操作的 C/C++ dll 上的 .Net 包装器。
我不认为decimal 是 C/C++ 中的本机类型,它肯定不是 .Net 中的基本/固有类型(不像 string、int、double 等) - 使用起来也较慢,因为 Decimal 操作没有内在的 CPU 指令(与基本类型不同)。
因为在 C/C++ 中没有等价物,所以必须将其转换为底层库可以理解的类型 - 无论如何,该类型很可能是 double。
【讨论】: