假设我有decimal X
我想计算3个字节为a,b,c
,其中a.bc
Gig接近X.
我希望它尽可能简洁。
我已经实现了它,但它非常糟糕但有效。
例如X = 2972117368
,我想要a = 2, b = 7, c = 6
。如何?
2972117368 /(1024 * 1024 * 1024)= 2.76799999922514
X总是小于9.99千兆字节。
答案 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())