WPF中double转化为16进制的string

我需要将一个double型数据转换为16进制的string数组,请问要怎么做?我用这个函数:string strDistance = System.Math.Abs(12.1).ToString("x8");但是一执行就报错,请各位大神指教,谢谢!

double x = 3.14d;

// 先转换为字节数组
byte[] bArray = BitConverter.GetBytes(x);

// 再转换为十六进制字符串
string sHex = string.Empty;
foreach(byte b in bArray)
{
sHex += Convert.ToString(b, 16);
}