将十进制转换为字节数组

时间:2011-01-19 12:51:09

标签: c# .net

假设我有decimal X

我想计算3个字节为a,b,c,其中a.bc Gig接近X.

我希望它尽可能简洁。

我已经实现了它,但它非常糟糕但有效。

例如X = 2972117368,我想要a = 2, b = 7, c = 6。如何?

2972​​117368 /(1024 * 1024 * 1024)= 2.76799999922514

X总是小于9.99千兆字节。

2 个答案:

答案 0 :(得分:1)

看起来你大部分都在那里:

decimal x = 2972117368;
double gig = Convert.ToDouble(x) / 1073741824.0;

byte a = (byte)Math.Floor(gig); // works for up to 127 gig - actually up to 256
byte b = (byte)(Math.Floor(gig * 10) % 10);
byte c = (byte)(Math.Floor(gig * 100) % 10);

编辑:对于一些拼写错误&逻辑错误

答案 1 :(得分:1)

Encoding.ASCII.GetBytes((double.Parse((X / (1024.0 * 1024 * 1024)).ToString("0.00")) * 100).ToString())