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

获取浮点小数点后的位数(带或不带小数部分)

干照
2023-03-14
问题内容

Amount (float)我的表中有以下列表。

Amount
123
123.1
123.0123
123.789456

我怎样才能得到小数点后的位数。

重复?: 我已经检查了现有的帖子,但是没有正确的方法来处理 float 数字 with or without decimal part

结果

Amount      Result
123         0
123.1       1
123.0123    4
123.789456  6

编辑
:花了一些宝贵的时间后,我发现了一些相对简单的脚本来处理此问题。


问题答案:

我找到了一些简单的脚本(相对于我而言)来处理此问题。

ISNULL(NULLIF(CHARINDEX('.',REVERSE(CONVERT(VARCHAR(50), Amount, 128))),0) - 1,0)

此处ISNULL(NULLIF仅用于处理不带小数部分的浮点数。如果没有没有小数部分的值,那么这很简单

CHARINDEX('.',REVERSE(CONVERT(VARCHAR(50), Amount, 128))) -1

希望对您有帮助。完整脚本如下

declare @YourTable table (Amount float)
insert into @YourTable
values(123),(123.1),(123.0123),(123.789456)

SELECT  ISNULL(NULLIF(CHARINDEX('.',REVERSE(CONVERT(VARCHAR(50), Amount, 128))),0) - 1,0)
FROM    @YourTable

SELECT  CHARINDEX('.',REVERSE(CONVERT(VARCHAR(50), Amount, 128))) -1 
FROM    @YourTable


 类似资料:
  • 问题内容: 我似乎在使用浮点数时失去了很多精度。 例如,我需要求解一个矩阵: 这是我用来从文本文件导入矩阵的代码: 我需要使用gauss-seidel进行求解,因此需要重新排列x,y和z的方程式: 这是我用来重新排列方程式的代码。是系数矩阵,是答案向量: 但是,我得到的答案并不精确到小数位。 例如,从上面重新排列第二个方程式后,我应该得到: 我得到的是: 这看起来似乎不是一个大问题,但是当您将数字

  • 问题内容: 我有一个使用浮点参数的函数(通常是整数或具有一位有效数字的十进制数),我需要将输出的值输出到具有两位小数的字符串中(5-> 5.00、5.5-> 5.50等)。如何在Python中执行此操作? 问题答案: 由于这篇文章可能会在这里出现一段时间,因此我们还要指出python 3语法:

  • 问题内容: 我需要比较2个日期,并返回2个小数位之间的天数。 例如: 比较时 这是5个小时的时差。所以我会退还0.2天 我试过了: 似乎没有任何工作。 问题答案: 以秒为单位,然后除以。小数点是必需的。

  • 我可以用< code>System.out.print来做吗?

  • 我正在尝试编写一个Python 2.5.4代码来编写一个函数,该函数以浮点数x作为输入,并返回x中小数点后的位数。 这是我的代码: while循环中的print语句仅用于调试目的。 现在,当我运行这段代码时,我得到以下输出。 1 10 1.4159 1 2 100 14.159 14 3 1000 141.59 141 4 10000 1415.9 1415 5 100000 14159.0 14

  • 问题内容: 我如何转换为? 问题答案: 您是否要仅用一位数字表示它: 或实际上四舍五入其他小数位? 甚至严格舍弃?