Tcl_Obj * Tcl_NewDoubleObj(doubleValue)
int Tcl_GetDoubleFromObj(interp, objPtr, doublePtr)
These procedures are used to create, modify, and read double Tcl objects from C code. Tcl_NewDoubleObj and Tcl_SetDoubleObj will create a new object of double type or modify an existing object to have double type. Both of these procedures set the object to have the double-precision floating point value given by doubleValue; Tcl_NewDoubleObj returns a pointer to a newly created object with reference count zero. Both procedures set the object's type to be double and assign the double value to the object's internal representation doubleValue member. Tcl_SetDoubleObj invalidates any old string representation and, if the object is not already a double object, frees any old internal representation.
Tcl_GetDoubleFromObj attempts to return a double value from the Tcl object objPtr. If the object is not already a double object, it will attempt to convert it to one. If an error occurs during conversion, it returns TCL_ERROR and leaves an error message in the interpreter's result object unless interp is NULL. Otherwise, it returns TCL_OK and stores the double value in the address given by doublePtr. If the object is not already a double object, the conversion will free any old internal representation.