2
我正在SQL Server上的原有精度2012我從浮點數轉換爲varchar
我有2個表:
Create table tbl1 (formula varchar(50))
Insert into tbl1 values ('A-B')
Create table tbl2 (A float(53), B float(53))
Insert into tbl2 values (12.2466654, 11.7543289)
我想要得到的結果作爲變量@result
:
Declare @result varchar(250);
Declare @a varchar(50);
Declare @b varchar(50);
Select @a = a from tbl2;
Select @b = b from tbl2;
Set @result = replace(tbl1, 'A', Cast(@A as float(53));
Set @result = replace(tbl1, 'B', Cast(@B as float(53));
當我從@result
中選擇時,我得到類似12.2-11.8
的東西,所以它幾乎是好的,但我失去了精度。
也許你有一個想法如何正確地編寫查詢?
Wel我想在這種情況下,我可以用十進制格式的列創建中間表並從那裏導入tbl2中的所有數據。然後使用新表 – Almazini
中的數據處理您是否正在查找tbl1中的值爲0.4923365或字符串'12 .2466654-11.7543289'。如果它只是字符串,那麼使用STR()應該可以解決問題[STR(tbl2.A,10,8)+' - '+ STR(tbl2.B,10,8)]。如果您希望獲得0.4923365,則需要考慮float數據類型的精度損失。爲了演示精度的不足,當我[CAST(12.2466654 as float) - CAST(11.7543289 as float)]時,我在SQL Server 2012實例上返回0.492336499999999。 –
我需要將它表示爲一個字符串!明天將嘗試Str()!感謝您的幫助 – Almazini