gpt4 book ai didi

sql - "Reduce"sql 十进制数据类型到最小精度和基于值的小数位数

转载 作者:行者123 更新时间:2023-12-04 19:12:04 25 4
gpt4 key购买 nike

我正在处理一个涉及许多使用相当高精度的 sql 十进制乘法的问题。

最近的一个错误促使我进行了一些研究,并且我看到了一篇关于如何计算小数结果的精度和小数位数的令人谦虚的文章 (http://msdn.microsoft.com/en-us/library/ms190476.aspx)。

我的理解是,为了避免截断或意外舍入,有时需要将操作数和可能的中间计算转换为可以工作并给出所需结果的大小。每个操作数都以小数形式 (19,5) 的形式提供给我。我对此无能为力,因为我们支持如此广泛的值(value)观。

我的问题:我可以将这些 decimal(19,5) 值的类型“即时”减少/转换为最小的十进制类型(精度和小数位数)来保存值(value)?

例如,我能否在将此变量 (@Cw) 用于我的乘法之前“即时”将其转换为 decimal(4,1)?

DECLARE @Cw decimal(19,5)
SET @Cw = 113.5

--Some type of CAST, i.e.
--CAST(@Cw as DECIMAL(GetActualPrecision(@Cw), GetActualScale(@Cw)))

-–should show 4 instead of 19
SELECT SQL_VARIANT_PROPERTY(@NewCw, 'Precision')

–-should show 1 instead of 5
SELECT SQL_VARIANT_PROPERTY(@NewCw, 'Scale')

谢谢!

最佳答案

没有

没有动态 CAST:比例和精度是静态的:“定点”
如果您想要任意精度,请使用 float,这当然是“ float ”

我们主要使用小数,没有任何问题。

如果你有复杂的数学,但效果不是很好,那么我会考虑在 SQL 中使用 CLR,或者在具有更好库的客户端代码中使用它

关于sql - "Reduce"sql 十进制数据类型到最小精度和基于值的小数位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6357514/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com