1

私は金融データを SQL から Matlab に取り込んでいますが、残念ながら「実数」(おおよそのデータ型) として格納されています。

たとえば、値は正しい値である "96.194" として SQL にロードされました (これは 1 から 5 の任意の数の小数点を持つことができます)。SQL では近似値であるため 96.19400024 のように格納されることは知っていますが、SQL Server はどういうわけかそれを 96.194 として表示することを知っています。

それをmatlabに取り込むと、96.194として取り込まれます。これが私が望むものです。残念ながら、実際には96.194 ではないことがわかります。

>>price
price =
           96.194

>> price==96.194
ans =
     0

>> class(price)
ans =
single

>> double(price)
ans =
          96.1940002441406

私の質問は、single を double に変換する方法はありますか?あるはずです。

4

2 に答える 2

0

vpa 関数を使用すると、現在の桁数設定とは異なる有効な (ゼロ以外の) 桁数を指定できます。例えば:

vpa(price, num_of_digits_required)

またはあなたの場合:

vpa(double(price),7)

(6 桁または 8 桁の有効数字でも同じ結果が得られます)

編集

vpa を使用するには、Symbolic Math Toolbox が必要です。Web には、この FEX ファイルなどの代替手段があります。

于 2012-10-18T22:50:31.403 に答える
0

単精度浮動小数点値の精度は約 7 桁 (23 ビットの小数コンポーネント、log10(2^24) ≈ 7.225 10 進数) しかないため、上位 7 桁を除くすべてを四捨五入できます。

于 2012-10-18T23:00:37.613 に答える