转换为具有指定小数位数的小数

问题描述

有什么方法可以将数字转换为指定位数的小数?我试过了:
SELECT ...
       CAST(NumericField AS NUMERIC(15,@DecimalPlaces) AS NumericField,...
但这没有用。 编辑:我犯了一个错误,写了
NUMBER
而不是
NUMERIC
。但是问题仍然存在:如何将小数位数指定为
NUMERIC
?     

解决方法

declare @decimal int=5
declare @decimalNum float =8931.0380106023125083

select ROUND(@decimalNum,@decimal,1)
对于尾随零使用此:
declare @decimal int=5
declare @decimalNum float =8931.12

select STR(@decimalNum,25,@decimal)
请注意,以上选择将返回varchar类型,而不是十进制,数字,浮点型或任何其他类型。     ,
declare @Value float = 123.4567,@RoundTo int = 2
select round(@Value * power(10,@RoundTo),0) / power(10,@RoundTo)
,您要转换为小数而不是数字。 强制转换(值为十进制(10,2))10是包括小数在内的总数,而2是小数位数     ,单程...
WITH T(NumericField,DecimalPlaces) AS
(
SELECT 1.234,10 UNION ALL
SELECT 1.234,3 
)
SELECT CASE DecimalPlaces 
        WHEN 15 THEN CAST(NumericField AS NUMERIC(30,15))
        WHEN 14 THEN CAST(NumericField AS NUMERIC(30,14))
        WHEN 13 THEN CAST(NumericField AS NUMERIC(30,13))
        WHEN 12 THEN CAST(NumericField AS NUMERIC(30,12))
        WHEN 11 THEN CAST(NumericField AS NUMERIC(30,11))
        WHEN 10 THEN CAST(NumericField AS NUMERIC(30,10))
        WHEN 09 THEN CAST(NumericField AS NUMERIC(30,9))
        WHEN 08 THEN CAST(NumericField AS NUMERIC(30,8))
        WHEN 07 THEN CAST(NumericField AS NUMERIC(30,7))
        WHEN 06 THEN CAST(NumericField AS NUMERIC(30,6))
        WHEN 05 THEN CAST(NumericField AS NUMERIC(30,5))
        WHEN 04 THEN CAST(NumericField AS NUMERIC(30,4))
        WHEN 03 THEN CAST(NumericField AS NUMERIC(30,3))
        WHEN 02 THEN CAST(NumericField AS NUMERIC(30,2))
        WHEN 01 THEN CAST(NumericField AS NUMERIC(30,1))
        WHEN 00 THEN CAST(NumericField AS NUMERIC(30,0))
        ELSE CAST(NULL AS SQL_VARIANT)
        END
FROM T      
    ,也许你可以试试这个:     DECLARE @quantityPrecision INT = 5;     设置@quantityPrecision = yourvalue     更新表A     设置数量=舍入(数量,@ quantityPrecision)     XXX     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...