2014-09-29 4 views
0

принимает только нижние 3 цифры десятичных данных? Любой питон математике функция библиотеки сделать работуфункция для захвата 3 последних битов десятичного представления

data = 55554343.345 
incoming(data) 



def incoming(data) 
    in_data = data 

мне нужно собрать последние 3 бита моих десятичных данных быть похожим: in_data = 343,345

+0

Вы хотите получить результат как строку или как поплавок? (Это для целей отчетности, или вам нужно сделать дальнейшие вычисления с усеченным результатом?) –

+0

Мне нужно сделать дальнейшие вычисления –

+0

Если вы хотите получить результат в виде поплавка, тогда ответ @ ArunGhosh должен работать. Да, вы получаете результат, который выйдет за небольшую сумму. Является ли ошибка в миллиардах на самом деле проблемой в вашем приложении? Если да, то почему? –

ответ

2

Получить напоминание о делении на 1000

def incoming(data) 
    in_data = round(data % 1000,3) 
+0

Вы уверены, что это работает? Я имею в виду, что он хочет только три места после десятичного разряда, но выходы кода '343.344999999' –

+0

Мне нужно 343.345, не расширяя часть плавающей доли. .34499999 –

+0

Отредактировано моим ответом –

0

Благодаря Сэмми :)

data = 1411984956.155 
incoming(data) 

def incoming(incoming_data) 
    in_da = str(incoming_data) 
    print 'incoming data', float(in_da[7:]) 

результат:

incoming data 956.155 
+0

Это ужасное решение! Попробуйте его с помощью '55554343.345' (значение, которое вы использовали в вопросе). –

+0

для 55554343.345, мне нужно напечатать «входящие данные», float (in_da [5:]), это лучшее, что я мог получить. если у вас есть лучший способ, пожалуйста, дайте мне знать –