当前位置: 首页 > 面试题库 >

在SQL中舍入到n个有效数字

隆璞
2023-03-14
问题内容

我希望能够在SQL中将数字四舍五入为n个有效数字。所以:

123.456 rounded to 2sf would give 120
0.00123 rounded to 2sf would give 0.0012

我知道ROUND()函数可以四舍五入到小数点后n位而不是有效数字。


问题答案:

select round(@number,@sf-1- floor(log10(abs(@number)))) 应该做的把戏!

成功测试了您的两个示例。

编辑:在@ number = 0上调用此函数将不起作用。在使用此代码之前,您应该为此添加一个测试。

create function sfround(@number float, @sf int) returns float as
begin
    declare @r float
    select @r = case when @number = 0 then 0 else round(@number ,@sf -1-floor(log10(abs(@number )))) end
    return (@r)
end


 类似资料:
  • 问题内容: 每次我想四舍五入到小数点后两位小数时,它都不想四舍五入…我怎么能将它四舍五入到小数点后两位零,那会给我92.00而不是92? 给我 但我想要 我使用了TO_CHAR,它起作用了 谢谢你们! 问题答案: 您可以尝试使用TO_CHAR函数来转换结果 例如 希望能帮助到你

  • 问题内容: 如何将matchpercent的结果四舍五入到小数点后两位(%)?我正在使用以下方法返回一些结果: 问题答案: 转换/转换结果: …这里的数字足够大,不能截断小数点左边。也就是说,如果使用“ 123.456”,则由于总长度为7位,因此需要使用DECIMAL(7,2)。

  • 我需要把分钟换算成小时,四舍五入到小数点后两位。我还需要在小数点后显示最多两个数字。所以如果我有650分钟,那么小时应该是10.83。 但在这种情况下,如果我的分钟数是630小时,那就是10.5000000。但我只想要10.50(四舍五入后)。我如何做到这一点?

  • 问题内容: 在Java中,我试图找到一种有效的方法来根据条件将BigDecimal舍入为两位小数,即Up或Down。 最有效的方法是什么? 问题答案:

  • 问题内容: 我需要四舍五入才能在UI中显示。例如,一个重要的数字: 1234-> 1000 0.12-> 0.1 0.012-> 0.01 0.062-> 0.06 6253-> 6000 1999-> 2000 是否有使用Python库执行此操作的好方法,还是必须自己编写? 问题答案: 您可以使用负数舍入整数: 因此,如果您只需要最高有效数字: 如果大于1,则可能需要将float转换为整数。

  • 问题内容: 在JavaScript中,将数字四舍五入到N个小数位的典型方法是: 但是,这种方法 最多 可以舍入到N个小数位,而我想 始终 舍入到N个小数位。例如,“ 2.0”将四舍五入为“ 2”。 有任何想法吗? 问题答案: 这不是一个四舍五入的问题,而是一个显示问题。数字不包含有关有效数字的信息;值2与2.0000000000000相同。当您将舍入后的值转换为字符串时,就可以使其显示一定数量的数