【发布时间】:2011-07-18 09:32:54
【问题描述】:
在 SQL Server 的列表中存储 17 位小数(例如 1.12345678901234567)的最佳方法是什么?
另外,我应该在 C++ 中使用哪种类型才能将这 17 个小数推入 SQL 查询?
谢谢
【问题讨论】:
标签: c++ sql sql-server floating-point decimal
在 SQL Server 的列表中存储 17 位小数(例如 1.12345678901234567)的最佳方法是什么?
另外,我应该在 C++ 中使用哪种类型才能将这 17 个小数推入 SQL 查询?
谢谢
【问题讨论】:
标签: c++ sql sql-server floating-point decimal
您实际上似乎有 18 位数字(包括整数部分)。您需要一个 128 位浮点数来存储它,请参阅:http://en.wikipedia.org/wiki/Quadruple_precision_floating-point_format(如果您可以访问这样的 CPU,80 位也可以工作。请参阅:http://en.wikipedia.org/wiki/Extended_precision)
要在 C++ 中读取和存储十进制类型,您需要将它们存储为字符串。我会寻找一个 GMP 数学库。 (任意精度数学库。)
您需要详细说明这些数字的来源,以获得更好的建议。
你真的需要精确的数字吗?
【讨论】:
对于您的 SQL Server 列,请使用 Decimal。 您可以精确指定精度(17 位小数)。
【讨论】: