---
name: "DoubleObj"
section: "3tcl"
platform: "linux"
package: "tcl8.3-doc"
version: "8.3.5-13"
release: "Debian 5.0 (Lenny)"
platforms: ["linux"]
url: "https://new.carta.tech/DoubleObj/3tcl"
---

# DoubleObj(3tcl)

manipulate Tcl objects as floating-point values

```

```

## NAME

Tcl\_NewDoubleObj, Tcl\_SetDoubleObj, Tcl\_GetDoubleFromObj - manipulate Tcl objects 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 double object.

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

  For **Tcl\_SetDoubleObj**, this points to the object to be converted to double type. For **Tcl\_GetDoubleFromObj**, this refers to the object from which to get a double value;  if *objPtr* does not already point to a double object, an attempt will be made to convert it to one.

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

  If an error occurs during conversion, an error message is left in the interpreter's result object unless *interp* is NULL.

- double *\*doublePtr* (out)

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

  ```

  ```

## DESCRIPTION

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.

## SEE ALSO

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

## KEYWORDS

double, double object, double type, internal representation, object, object type, string representation
