首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Server十进制值未正确插入

Server十进制值未正确插入
EN

Stack Overflow用户
提问于 2022-02-03 10:22:39
回答 1查看 228关注 0票数 -2

我需要保存具有最高14位精度的十进制值( decimal (20,14))。但是,如果插入的值的精度较低,则丢失的数字是随机完成的,而不仅仅是添加零。例如,将值382.593375保存为382.59337499999998。同样,381.949875被保存为381.94987500000002。

我尝试使用数据类型浮点数代替十进制,但保存的值不能达到14精度小数。有什么帮助吗?

EN

回答 1

Stack Overflow用户

发布于 2022-02-03 10:31:03

问题在于数据类型的选择,而不是Server。这一问题可转载如下:

代码语言:javascript
复制
SELECT CONVERT(decimal(20,14),CONVERT(float,382.593375));

这将返回值382.59337499999998。这并不奇怪,因为基2值( float是)不能准确地存储非整数基数10的值。因此,当将该值转换回基10值(本例中为decimal(20,14))时,将使用float的准确性。

解决方案是什么?在任何时候,您都要定义输入参数,确保将值定义为基10数据类型;这样就不会出现舍入问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70969527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档