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.

 Risposta accettata

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

4 Commenti

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
see original question
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

Accedi per commentare.

Più risposte (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

Community Treasure Hunt

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

Start Hunting!

Translated by