SQL Server 将小数转换成分数的方法 dbo.cusf_DecimalToFraction(@DecimalValue DECIMAL(18, 10))
USE TESTDB GO -- ============================================= -- Author: WRN -- Create date: 2024-11-25 16:30:34 -- Database: TESTDB -- Description: 将小数转成分数形式 -- ============================================= ALTER FUNCTION dbo.CusF_DecimalToFraction (@DecimalValue DECIMAL(18, 10)) RETURNS VARCHAR(50) AS BEGIN DECLARE @numerator INT; DECLARE @denominator INT; DECLARE @gcd INT; DECLARE @tempNumerator INT; DECLARE @tempDenominator INT; DECLARE @fraction VARCHAR(50); -- 假设我们有一个简单的分数化算法(这里只是一个示例) SET @numerator = @DecimalValue * 1000000; -- 乘以一个大数以避免浮点误差 SET @denominator = 1000000; -- 计算最大公约数(GCD) SET @tempNumerator = @numerator; SET @tempDenominator = @denominator; WHILE @tempDenominator <> 0 BEGIN SET @gcd = @tempDenominator; SET @tempDenominator = @tempNumerator % @tempDenominator; SET @tempNumerator = @gcd; END; -- 约分分数 SET @numerator = @numerator / @gcd; SET @denominator = @denominator / @gcd; -- 构建分数形式的字符串 SET @fraction = CAST(@numerator AS VARCHAR) + '/' + CAST(@denominator AS VARCHAR); RETURN @fraction; END; -- 使用函数 调用此方法即可 -- SELECT dbo.DecimalToFraction(0.75) AS Fraction; GO
调用方式及结果:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?