2019年4月30日 星期二

[C#] 取得有效位數 ex.0.0001234 => 0.000123

如取得有效三位數
ex. 12345 => 12300
ex. 1.2345 => 1.23
ex. 0.0001234 => 0.000123

// 取得有效位數
       private static double RoundToSignificantDigits(double d, int digits)
       {
           if (d == 0.0)
           {
               return 0.0;
           }
           else
           {
               double leftSideNumbers = Math.Floor(Math.Log10(Math.Abs(d))) + 1;
               double scale = Math.Pow(10, leftSideNumbers);
               double result = scale * Math.Round(d / scale, digits, MidpointRounding.AwayFromZero);
 
               // Clean possible precision error.
               if ((int)leftSideNumbers >= digits)
               {
                   return Math.Round(result, 0, MidpointRounding.AwayFromZero);
               }
               else
               {
                   return Math.Round(result, digits - (int)leftSideNumbers, MidpointRounding.AwayFromZero);
               }
           }
       }

參考: https://stackoverflow.com/questions/374316/round-a-double-to-x-significant-figures

[加密] 記錄用 Gpg4Win

參考 : https://blog.timshan.idv.tw/2013/09/howto-gpg4win.html

2019年4月25日 星期四

[SQL] [Error] 資料表的識別欄位其外顯值只有當使用了資料行清單且 IDENTITY_INSERT 為 ON 時才能指定。

SQL 要更新trigger 內容時

出現以下內容 :

資料表的識別欄位其外顯值只有當使用了資料行清單且 IDENTITY_INSERT 為 ON 時才能指定。

這次的原因原來是 insert 時, 想要去改動 又自動增號的ID 才會這樣

解法:
1. 明確定義要insert 的欄位
2. 不明確定義欄位,就要把自動增號的值拿掉