2015-10-14 2 views
0

например. x = 12.354Извлечь цифры справа от десятичной точки

Я хочу получить 354 от x. Для этого я попробовал это уравнение,

у = х - пол (х)

Но это порождает 0,354, которое не мое требование.

Итак, как я могу это сделать?

+0

Какой язык программирования вы используете? –

+0

Мне нужно использовать MATLAB. Но я не знаю, как это сделать. Имеется ли пол в MATLAB? – emtiajium

ответ

2

Родовая идеи, как указывал @JoachimPileborg выглядит в MATLAB:

x = 12.354; 
str = num2str(x); 
idx = find(str=='.'); 
substr = str(idx+1:end); 
y = str2num(substr); 
+0

Спасибо, дорогая. – emtiajium

+0

@ Emtiaj, пожалуйста, рассмотрите [принятие этого ответа] (http://meta.stackexchange.com/a/5235/287333), чтобы отметить его как разрешенный. –

2

Общее решение, которое должно работать со всеми языками программирования, состоит в том, чтобы преобразовать число в строку, затем взять подстроку из десятичной точки (или запятой) и преобразовать ее в целое число.

+0

Эти реальные значения являются результатом функции. Поэтому вопрос заключается в том, как преобразовать это в строку. [Использование MATLAB] – emtiajium

+0

Я получил свой ответ. Большое спасибо. – emtiajium

0

Альтернативы (возможно быстрее) М.З. ответ. Обратите внимание на «сдвиг» из-за этого подхода, эффективно удаляя нули справа от десятичной точки.

yfoo = 34.00267400; 
yfoo = yfoo- floor(yfoo); % .00267400; 
% internal rep of number ignores trailing zeros. 
yrab = str2num(strrep(num2str(yfoo),'.','')); %2674 
+0

О, спасибо :) – emtiajium

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