Amount (float)我的表中有以下列表。
Amount (float)
Amount 123 123.1 123.0123 123.789456
我怎样才能得到小数点后的位数。
重复?: 我已经检查了现有的帖子,但是没有正确的方法来处理 float 数字 with or without decimal part 。
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仅用于处理不带小数部分的浮点数。如果没有没有小数部分的值,那么这很简单
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