---
name: "Tcl_GetDoubleFromObj"
section: "3"
platform: "linux"
package: "tcl"
version: "8.6.16-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Tcl_GetDoubleFromObj"
---

# Tcl\_GetDoubleFromObj(3)

manipulate Tcl values as floating-point values

```

```

## NAME

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

## SYNOPSIS

```
#include <tcl.h>

Tcl_Obj *
Tcl_NewDoubleObj(doubleValue)

Tcl_SetDoubleObj(objPtr, doubleValue)

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

## 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

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.

## SEE ALSO

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

## KEYWORDS

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