提取小数点右边的数字

Extract digits to the right of the decimal point

例如x = 12.354

我想从 x 得到 354。为此,我尝试了这个等式,

y = x - 地板(x)

但这会生成 0.354,这不是我的要求。

那么,我该怎么做呢?

一个适用于所有编程语言的通用解决方案是将数字转换为字符串,然后从小数点(或逗号)后面取出子字符串并将其转换为整数。

@JoachimPileborg 指出的通用思想在 MATLAB 中如下所示:

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

m.s 的替代方法(可能更快)。的回答。注意 'shift' 由于这种方法有效地删除了小数点右边的零。

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