所以这可能是一个简单的问题。我有一些传入的小数点 .12345,我想把它变成 12345。现在这个值可以改变,所以我不想只将它乘以 100,000。例如,如果传入值是 .123,我想要 123,如果是 .3219,我想要 3219。
最佳答案
这里有一些东西可以玩:(假设你的输入是一个数字( double 或单精度)
f=@(x) x*10^sum(floor(x*10.^[0:16])~=x*10.^[0:16])
这假定浮点精度高达 16 位...
试试 f(.123)
...
额外注意,输出看起来像一个整数,但它实际上仍然是一个双\单。为了真正使其成为一个整数类,您需要使用 uint64(f(x))
或任何 integer type 进行转换你需要。
另一种解决方案是使用 num2str 转换为字符串,取出 0。然后使用 str2num 转换回 num:
f=@(x) str2num(subsref(num2str(x),struct('type','()','subs',{{1,3:numel(num2str(x))}})));
丑陋但有效...
关于matlab - 在 Matlab 或 Simulink 中将小数转换为整数。 (不四舍五入),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48814805/