我正在尝试将我的数字的小数位数减少到两位。不幸的是不可能。因此,我添加了一些代码,也许您会看到错误...
Update [dbo].[company$Line] SET
Amount = ROUND((SELECT RAND(1) * Amount),2),
...
SELECT * FROM [dbo].[company$Line]
我要更改的db中的金额:
0.00000000000000000000
1914.65000000000010000000
376.81999999999999000000
289.23000000000002000000
执行代码后得到的结果:
0.00000000000000000000
1366.28000000000000000000
268.89999999999998000000
206.38999999999999000000
我想要得到的结果(或类似的东西):
0.00000000000000000000 or 0.00
1366.30000000000000000000 or 1366.30
268.99000000000000000000 or 268.99
206.49000000000000000000 or 206.49
答案 0 :(得分:1)
RAND()
返回浮点数。
根据{{3}},将十进制数和浮点数相乘的结果是浮点数,请尝试:
ROUND(CAST(RAND(1) as decimal(28,12)) * Amount, 2)
这应该可以解决问题。