Tcl\_DoubleObj(3) Tcl Library Procedures Tcl\_DoubleObj(3)

```

```

# [NAME](#NAME)

Tcl\_NewDoubleObj, Tcl\_SetDoubleObj, Tcl\_GetDoubleFromObj - manipulate Tcl values as floating-point values

# [SYNOPSIS](#SYNOPSIS)

```
#include <tcl.h>

Tcl_Obj *
Tcl_NewDoubleObj(doubleValue)

Tcl_SetDoubleObj(objPtr, doubleValue)

int
Tcl_GetDoubleFromObj(interp, objPtr, doublePtr)
```

# [ARGUMENTS](#ARGUMENTS)

double *doubleValue* (in)

A double-precision floating-point value used to initialize or set a Tcl value.

Tcl\_Obj *\*objPtr* (in/out)

For **Tcl\_SetDoubleObj**, this points to the value in which to store a double value. For **Tcl\_GetDoubleFromObj**, this refers to the value from which to retrieve a double value.

Tcl\_Interp *\*interp* (in/out)

When non-NULL, an error message is left here when double value retrieval fails.

double *\*doublePtr* (out)

Points to place to store the double value obtained from *objPtr*.

```
    
```

# [DESCRIPTION](#DESCRIPTION)

These procedures are used to create, modify, and read Tcl values that hold double-precision floating-point values.

**Tcl\_NewDoubleObj** creates and returns a new Tcl value initialized to the double value *doubleValue*. The returned Tcl value is unshared.

**Tcl\_SetDoubleObj** sets the value of an existing Tcl value pointed to by *objPtr* to the double value *doubleValue*. The *objPtr* argument must point to an unshared Tcl value. Any attempt to set the value of a shared Tcl value violates Tcl's copy-on-write policy. Any existing string representation or internal representation in the unshared Tcl value will be freed as a consequence of setting the new value.

**Tcl\_GetDoubleFromObj** attempts to retrieve a double value from the Tcl value *objPtr*. If the attempt succeeds, then **TCL\_OK** is returned, and the double value is written to the storage pointed to by *doublePtr*. If the attempt fails, then **TCL\_ERROR** is returned, and if *interp* is non-NULL, an error message is left in *interp*. The **Tcl\_ObjType** of *objPtr* may be changed to make subsequent calls to **Tcl\_GetDoubleFromObj** more efficient.

# [REFERENCE COUNT MANAGEMENT](#REFERENCE_COUNT_MANAGEMENT)

**Tcl\_NewDoubleObj** always returns a zero-reference object, much like **Tcl\_NewObj**.

**Tcl\_SetDoubleObj** does not modify the reference count of its *objPtr* argument, but does require that the object be unshared.

**Tcl\_GetDoubleFromObj** does not modify the reference count of its *objPtr* argument; it only reads. Note however that this function may set the interpreter result; if that is the only place that is holding a reference to the object, it will be deleted.

# [SEE ALSO](#SEE_ALSO)

Tcl\_NewObj, Tcl\_DecrRefCount, Tcl\_IncrRefCount, Tcl\_GetObjResult

# [KEYWORDS](#KEYWORDS)

double, double value, double type, internal representation, value, value type, string representation

8.0 Tcl

---

Document: Tcl_GetDoubleFromObj(3) from tcl 9.1.0-r1 (Chainguard OS)
Source: https://downloads.sourceforge.net/project/tcl/Tcl/9.1.0/tcl9.1.0-src.tar.gz
