Я успешно интегрировал мой .NET Dll в MATLAB. Все хорошо. Но я передаю System.Double со значением, например 6000.46, и возвращаю его в функции MATLAB как [valueFromDotNet]
ANS MATLAB - ANS = 6000, но я ожидал, что ANS = 6000.4600
У кого-нибудь есть идея, где мне искать?
РЕДАКТИРОВАТЬ 1:
Я заверил, что формат короткий. (если get (0, 'Format')) и я также установил формат long;
Ничего не изменилось. У кого-нибудь есть идея, почему это происходит?
РЕДАКТИРОВАТЬ 2:
нашел проблему. Я получаю данные, которые я передаю в MATLAB, из внешнего сервиса. числа там отформатированы как строки, но всегда как «6000.46»; я разобрался с CultureInfo.InvariantCulture, но это было неправильно. Изменил его на новый CultureInfo ("en-US"), и теперь он работает!
РЕДАКТИРОВАТЬ 3:
я был слишком взволнован. это все еще странно. но я думаю, что теперь просто не зная, как работает mathlab
У меня есть этот обратный звонок
function tbmxHandleTickEvent(source,arg)
t = arg.Tick;
[t.BidPrice t.AskSize t.AskPrice t.LastSize t.LastPrice]
end
обратный вызов запускается событием .NET
используя это, я получаю цены без дроби
когда я изменяю обратный вызов, как это
function tbmxHandleTickEvent(source,arg)
t = arg.Tick;
t.BidPrice
end
результат - эта цена, включая дробь