Convert System.Decimal from C# .NET to double

I am communicating with a Thorlabs DC servo controller via .NET. When I query the motor position it returns the value in system.decimal format. I found some documentation that briefly mentions this format but doesn't explain how to convert it to a usable numerical value.
How can I can I convert this to something usable?
The returned postion variable is attached.

 Accepted Answer

load 'pos.mat'
import System.*
methodsview('System.Decimal')
System.Decimal.ToDouble(pos)

4 Comments

Hi Christopher,
Thanks for posting this information, but what is it 'pos.mat'? Where can it be found? Standard Matlab package don't have it. Please, give a link.
Valeriy
Notes:
This can only work on Windows
You might need to do the import before the load, so that the class is defined at the time of the load()
OK, I see it, thank you, it is attached

Sign in to comment.

More Answers (1)

Here is an example without using "pos.mat".
>> xdecimal = System.Decimal(100.1)
xdecimal =
Decimal with properties:
Scale: 1
Zero: [1×1 System.Decimal]
One: [1×1 System.Decimal]
MinusOne: [1×1 System.Decimal]
MaxValue: [1×1 System.Decimal]
MinValue: [1×1 System.Decimal]
>> xdouble = System.Decimal.ToDouble(xdec)
xdouble =
100.1000

1 Comment

Note that System.Decimal is only available on MS Windows.

Sign in to comment.

Categories

Find more on MATLAB Compiler SDK in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!