程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 【簽名之坑】Decmail.GetBits(),getbits

【簽名之坑】Decmail.GetBits(),getbits

編輯:C#入門知識

【簽名之坑】Decmail.GetBits(),getbits


decimal類型有GetBits()方法

可以獲取到值的int[4]值,進而獲取到byte[16]值

 

在c#裡,0m和0.00m獲取到的byte[]是不一樣的(具體為何不一樣,自己百度)

在sql裡,EF生成的decimal的列,默認強制2位小數

c#裡賦值0m,存到數據庫變成0.00m

 

那麼問題來了

如果有用到decimal.GetBits()的值作為要簽名的內容

那麼存到數據庫後再取出來,驗證簽名就會失敗

 

為了應對這種問題,需要在存進數據庫前,強制把decimal轉為2位小數

在賦值語句裡連著“+0.01m-0.01m”,例如item.Credit = value + 0.01m - 0.01m;

這樣就能解決這個問題了……

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved