** 更新しました float または double を matlab.as example の float セクションで 2 桁のみで扱いたい
a=23.1234443434343434454545444;
私はそれが等しい
a=23.12;
matlabで何か考えはありますか?
round(1.95583, 2); // return 1.95 (php function ) in matlabのような関数が欲しい
** 更新しました float または double を matlab.as example の float セクションで 2 桁のみで扱いたい
a=23.1234443434343434454545444;
私はそれが等しい
a=23.12;
matlabで何か考えはありますか?
round(1.95583, 2); // return 1.95 (php function ) in matlabのような関数が欲しい
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
ロディのコメントによると、ラウンドは適切に切り捨てられない可能性があるため、次を使用します。
>> a = 3.146
>> fix(a/d)*d
ans =
3.1400