# ValueMethod

Applies to:Fast Math Parser
Class:uCalc.Item
Returns the value (default double precision) associated with a uCalc.Item
Syntax
Value()
Remarks
Use this to retrieve the Double precision value associated with a variable.
Example 1: Retrieving an item value by explicit data type
``` Dim var = uc.DefineVariable("Var = 1.25") Dim ByteVar = uc.DefineVariable("ByteVar As Byte = -1") Dim Int16Var = uc.DefineVariable("Int16Var As Int16 = 456") Dim Int32Var = uc.DefineVariable("Int32Var As Int32 = Int16u(-1)") Dim Int64Var = uc.DefineVariable("Int64Var = Int64(55.2)") Dim SingleVar = uc.DefineVariable("SingleVar As Single = Single(1.0000000001)-1") Dim DoubleVar = uc.DefineVariable("DoubleVar As Double = Double(1.0000000001)-1") Dim StringVar = uc.DefineVariable("StringVar = 'Just a test'"): ' Defaults to string when there are quotes Dim PointerVar = uc.DefineVariable("PtrVar As Double Ptr = AddressOf(DoubleVar)") Console.WriteLine("Var value: " + var.Value()) ' Returns "Var value: 1.25" Console.WriteLine("ByteVar value: " + CInt(ByteVar.ValueByte())) ' Returns "ByteVar value: 255" Console.WriteLine("Int16Var value: " + Int16Var.ValueInt16()) ' Returns "Int16Var value: 456" Console.WriteLine("Int32Var value: " + Int32Var.ValueInt32()) ' Returns "Int32Var value: 65535" Console.WriteLine("Int64Var value: " + Int64Var.ValueInt64()) ' Returns "Int64Var value: 55" Console.WriteLine("SingleVar value: " + SingleVar.ValueSng()) ' Returns "SingleVar value: 0" Console.WriteLine("DoubleVar value: " + DoubleVar.ValueDbl()) ' Returns "DoubleVar value: 1e-10" Console.WriteLine("StringVar value: " + StringVar.ValueStr()) ' Returns "StringVar value: Just a test" ' The values in the two lines below should match although their specific value is not known beforehand Console.Write("PointerVar value: "): Console.WriteLine(PointerVar.ValuePtr()) Console.Write("DoubleVar address: "): Console.WriteLine(DoubleVar.ValueAddr()) Console.WriteLine(PointerVar.ValuePtr()) ```
``` var var = uc.DefineVariable("Var = 1.25"); var ByteVar = uc.DefineVariable("ByteVar As Byte = -1"); var Int16Var = uc.DefineVariable("Int16Var As Int16 = 456"); var Int32Var = uc.DefineVariable("Int32Var As Int32 = Int16u(-1)"); var Int64Var = uc.DefineVariable("Int64Var = Int64(55.2)"); var SingleVar = uc.DefineVariable("SingleVar As Single = Single(1.0000000001)-1"); var DoubleVar = uc.DefineVariable("DoubleVar As Double = Double(1.0000000001)-1"); var StringVar = uc.DefineVariable("StringVar = 'Just a test'"); // Defaults to string when there are quotes var PointerVar = uc.DefineVariable("PtrVar As Double Ptr = AddressOf(DoubleVar)"); Console.WriteLine("Var value: " + var.Value()); // Returns "Var value: 1.25"; Console.WriteLine("ByteVar value: " + (int)ByteVar.ValueByte()); // Returns "ByteVar value: 255"; Console.WriteLine("Int16Var value: " + Int16Var.ValueInt16()); // Returns "Int16Var value: 456"; Console.WriteLine("Int32Var value: " + Int32Var.ValueInt32()); // Returns "Int32Var value: 65535"; Console.WriteLine("Int64Var value: " + Int64Var.ValueInt64()); // Returns "Int64Var value: 55"; Console.WriteLine("SingleVar value: " + SingleVar.ValueSng()); // Returns "SingleVar value: 0"; Console.WriteLine("DoubleVar value: " + DoubleVar.ValueDbl()); // Returns "DoubleVar value: 1e-10"; Console.WriteLine("StringVar value: " + StringVar.ValueStr()); // Returns "StringVar value: Just a test"; // The values in the two lines below should match although their specific value is not known beforehand Console.Write("PointerVar value: "); Console.WriteLine(PointerVar.ValuePtr()); Console.Write("DoubleVar address: "); Console.WriteLine(DoubleVar.ValueAddr()); Console.WriteLine(PointerVar.ValuePtr()); ```
``` //var Var = uc.DefineVariable('Var = 1.25'); //var ByteVar = uc.DefineVariable('ByteVar As Byte = -1'); //var Int16Var = uc.DefineVariable('Int16Var As Int16 = 456'); //var Int32Var = uc.DefineVariable('Int32Var As Int32 = Int16u(-1)'); //var Int64Var = uc.DefineVariable('Int64Var = Int64(55.2)'); //var SingleVar = uc.DefineVariable('SingleVar As Single = Single(1.0000000001)-1'); //var DoubleVar = uc.DefineVariable('DoubleVar As Double = Double(1.0000000001)-1'); //var StringVar = uc.DefineVariable('StringVar = "Just a test"'); // Defaults to string when there are quotes //var PointerVar = uc.DefineVariable('PtrVar As Double Ptr = AddressOf(DoubleVar)'); WriteLn('Var value: ' + var.Value()); // Returns 'Var value: 1.25'; WriteLn('ByteVar value: ' + CInt(ByteVar.ValueByte())); // Returns 'ByteVar value: 255'; WriteLn('Int16Var value: ' + Int16Var.ValueInt16()); // Returns 'Int16Var value: 456'; WriteLn('Int32Var value: ' + Int32Var.ValueInt32()); // Returns 'Int32Var value: 65535'; WriteLn('Int64Var value: ' + Int64Var.ValueInt64()); // Returns 'Int64Var value: 55'; WriteLn('SingleVar value: ' + SingleVar.ValueSng()); // Returns 'SingleVar value: 0'; WriteLn('DoubleVar value: ' + DoubleVar.ValueDbl()); // Returns 'DoubleVar value: 1e-10'; WriteLn('StringVar value: ' + StringVar.ValueStr()); // Returns 'StringVar value: Just a test'; // The values in the two lines below should match although their specific value is not known beforehand Write('PointerVar value: '); WriteLn(PointerVar.ValuePtr()); Write('DoubleVar address: '); WriteLn(DoubleVar.ValueAddr()); WriteLn(PointerVar.ValuePtr()); ```
``` auto var = uc.DefineVariable("Var = 1.25"); auto ByteVar = uc.DefineVariable("ByteVar As Byte = -1"); auto Int16Var = uc.DefineVariable("Int16Var As Int16 = 456"); auto Int32Var = uc.DefineVariable("Int32Var As Int32 = Int16u(-1)"); auto Int64Var = uc.DefineVariable("Int64Var = Int64(55.2)"); auto SingleVar = uc.DefineVariable("SingleVar As Single = Single(1.0000000001)-1"); auto DoubleVar = uc.DefineVariable("DoubleVar As Double = Double(1.0000000001)-1"); auto StringVar = uc.DefineVariable("StringVar = 'Just a test'"); // Defaults to string when there are quotes auto PointerVar = uc.DefineVariable("PtrVar As Double Ptr = AddressOf(DoubleVar)"); cout << "Var value: " << var.Value() << endl; // Returns "Var value: 1.25"; cout << "ByteVar value: " << (int)ByteVar.ValueByte() << endl; // Returns "ByteVar value: 255"; cout << "Int16Var value: " << Int16Var.ValueInt16() << endl; // Returns "Int16Var value: 456"; cout << "Int32Var value: " << Int32Var.ValueInt32() << endl; // Returns "Int32Var value: 65535"; cout << "Int64Var value: " << Int64Var.ValueInt64() << endl; // Returns "Int64Var value: 55"; cout << "SingleVar value: " << SingleVar.ValueSng() << endl; // Returns "SingleVar value: 0"; cout << "DoubleVar value: " << DoubleVar.ValueDbl() << endl; // Returns "DoubleVar value: 1e-10"; cout << "StringVar value: " << StringVar.ValueStr() << endl; // Returns "StringVar value: Just a test"; // The values in the two lines below should match although their specific value is not known beforehand cout << "PointerVar value: "; cout << PointerVar.ValuePtr() << endl; cout << "DoubleVar address: "; cout << DoubleVar.ValueAddr() << endl; cout << PointerVar.ValuePtr() << endl; ```
``` auto var = uc.DefineVariable("Var = 1.25"); auto ByteVar = uc.DefineVariable("ByteVar As Byte = -1"); auto Int16Var = uc.DefineVariable("Int16Var As Int16 = 456"); auto Int32Var = uc.DefineVariable("Int32Var As Int32 = Int16u(-1)"); auto Int64Var = uc.DefineVariable("Int64Var = Int64(55.2)"); auto SingleVar = uc.DefineVariable("SingleVar As Single = Single(1.0000000001)-1"); auto DoubleVar = uc.DefineVariable("DoubleVar As Double = Double(1.0000000001)-1"); auto StringVar = uc.DefineVariable("StringVar = 'Just a test'"); // Defaults to string when there are quotes auto PointerVar = uc.DefineVariable("PtrVar As Double Ptr = AddressOf(DoubleVar)"); Console::WriteLine("Var value: " + var.Value()); // Returns "Var value: 1.25"; Console::WriteLine("ByteVar value: " + (int)ByteVar.ValueByte()); // Returns "ByteVar value: 255"; Console::WriteLine("Int16Var value: " + Int16Var.ValueInt16()); // Returns "Int16Var value: 456"; Console::WriteLine("Int32Var value: " + Int32Var.ValueInt32()); // Returns "Int32Var value: 65535"; Console::WriteLine("Int64Var value: " + Int64Var.ValueInt64()); // Returns "Int64Var value: 55"; Console::WriteLine("SingleVar value: " + SingleVar.ValueSng()); // Returns "SingleVar value: 0"; Console::WriteLine("DoubleVar value: " + DoubleVar.ValueDbl()); // Returns "DoubleVar value: 1e-10"; Console::WriteLine("StringVar value: " + StringVar.ValueStr()); // Returns "StringVar value: Just a test"; // The values in the two lines below should match although their specific value is not known beforehand Console::Write("PointerVar value: "); Console::WriteLine(PointerVar.ValuePtr()); Console::Write("DoubleVar address: "); Console::WriteLine(DoubleVar.ValueAddr()); Console::WriteLine(PointerVar.ValuePtr()); ```
DLL import code
``` <DllImport(uCalcDLL, CharSet:=CharSet.Ansi, CallingConvention:=CallingConvention.Cdecl, EntryPoint:="Value")> _ Private Function Value__(ByVal ItemHandle As IntPtr) As Double End Function ```
``` [DllImport(uCalcDLL, CharSet=CharSet.Ansi, CallingConvention=CallingConvention.Cdecl, EntryPoint="Value")] protected static extern double Value_(IntPtr ItemHandle); ```
``` {DLLImport}function Value__(ItemHandle: System.Pointer): Double; cdecl; external uCalcDLL name 'Value'; ```
``` typedef double (* __Value)(void *ItemHandle); ```
``` [DllImport(uCalcLib, CharSet=CharSet::Ansi, CallingConvention=CallingConvention::Cdecl, EntryPoint = "Value")] static double Value_(void * ItemHandle); ```