所以这可能是一个简单的问题.我有一些输入的十进制.12345,我想制作12345.现在这个值可以改变,所以我不想将它乘以100,000.例如,如果传入的值是.123我想要123,如果它是.3219我想要3219.
这里有一些东西可以玩:(假设您的输入是一个数字(双或单)
f=@(x) x*10^sum(floor(x*10.^[0:16])~=x*10.^[0:16])
Run Code Online (Sandbox Code Playgroud)
假设浮点精度高达16位......
试试f(.123)......
另外注意,输出看起来像一个整数,但它仍然是一个双\单.为了真正使它成为一个整数类,你需要使用uint64(f(x))或者你需要的任何整数类型.
另一个解决方案是使用num2str强制转换为字符串,取出0.并使用str2num强制转换为num:
f=@(x) str2num(subsref(num2str(x),struct('type','()','subs',{{1,3:numel(num2str(x))}})));
Run Code Online (Sandbox Code Playgroud)
丑陋但有效......