2011-01-19 4 views
0

предположат у меня есть decimal XПреобразовать десятичные в массив байт

Я хочу, чтобы вычислить 3 байта, как a,b,c где a.bc Gig рядом X.

Я хочу, чтобы это было чистыми и короткими, как это возможно.

Я уже реализовал его, но это очень плохо, но работает.

например X = 2972117368, я хочу a = 2, b = 7, c = 6. как?

2972117368/(1024 * 1024 * 1024) = 2.76799999922514

Х всегда будет меньше, чем 9,99 гигабайт.

+0

пожалуйста, быть более конкретным и дать больше примеров. – Andrey

+0

в основном, у вас есть несколько байтов, и нужно количество гигабайт, округленное до двух десятичных знаков? – SWeko

ответ

1
Encoding.ASCII.GetBytes((double.Parse((X/(1024.0 * 1024 * 1024)).ToString("0.00")) * 100).ToString()) 
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); 

Отредактировано: Для некоторых опечаток & логические ошибки

+2

ну, это не соответствует примеру OP: X = 2972117368, я хочу a = 2, b = 7, c = 6 – Andrey

+0

Да, я бы не пробовал - там было несколько воинов! Должен работать сейчас. –

+0

и на самом деле работает до 255 ГБ :) – SWeko

Смежные вопросы