5
如果我就與值的單精度操作,將給予8結尾的結果:Matlab的(2008A-32位)單精度的bug
>> single(single(6.500001e+02)*single(-64.1775131)*single(0.65)*single(2))
ans = -5.4230008e+004
然後我做任何操作,使用雙精度和相同的操作,前使用單精度,其結果將是從第一時間我運行它不同:在Matlab 2008A 32位
>> double(6.5000012e+02)*double(-64.1775131)*double(0.65)*double(2)
ans = -5.423000858119204e+004
>> single(single(6.500001e+02)*single(-64.1775131)*single(0.65)*single(2))
ans = -5.4230004e+004
就會發生此問題。這在Matlab 2012b 64位中不是問題。
有關如何避免此問題的任何想法?
謝謝。
我無法在MATLAB版本8.2.0.701(R2013b)中重現此效果。我第一次獲得第二個單一結果。只是爲了記錄。 –
我無法在MATLAB R2012a/32位(win32)上重現。 –
另外,檢查這個,似乎有關:https://www.mathworks.com/matlabcentral/newsreader/view_thread/246425你似乎有權訪問R2012b,爲什麼不使用它? –