**更新我只想在 matlab.as 的浮点部分中使用 2 位数字处理浮点数或双精度数
a=23.1234443434343434454545444;
我想如果我使用它是平等的
a=23.12;
matlab有什么想法吗?
我想要在matlab中像round(1.95583, 2);//return 1.95 (php function)这样的函数
**更新我只想在 matlab.as 的浮点部分中使用 2 位数字处理浮点数或双精度数
a=23.1234443434343434454545444;
我想如果我使用它是平等的
a=23.12;
matlab有什么想法吗?
我想要在matlab中像round(1.95583, 2);//return 1.95 (php function)这样的函数
如果你想显示只有 2 位数字的值,你可以这样做
>> format bank
>> pi
ans =
3.14
>> rand(4)
ans =
0.81 0.63 0.96 0.96
0.91 0.10 0.96 0.49
0.13 0.28 0.16 0.80
0.91 0.55 0.97 0.14
这并不意味着计算将以较低的精度进行。
如果后者真的是你想要的(为什么?!),你可以使用像这样的结构
ppi = single(pi)
降低精度,或
f = @(x) double(uint64(x*100))/100;
保证 2 位精度。在最后一种情况下,您必须f
在使用它们之前通过函数传递所有值:
>> ppi = f(pi)
ans =
3.140000000000000
>> f(rand(4))
ans =
0.280000000000000 0.690000000000000 0.440000000000000 0.190000000000000
0.050000000000000 0.320000000000000 0.380000000000000 0.490000000000000
0.100000000000000 0.950000000000000 0.770000000000000 0.450000000000000
0.820000000000000 0.030000000000000 0.800000000000000 0.650000000000000
如果您正在为最后一种情况寻找更优雅的解决方案,请使用定点工具箱,正如 Danil 建议的那样。
如果您只想保留 N 个数字,则另一种公式是:
>> d = 10^(-2)
>> round(pi/d)*d
ans =
3.1400
根据 Rody 的评论,round 可能无法正确截断,因此请使用:
>> a = 3.146
>> fix(a/d)*d
ans =
3.1400