1 // ANNA - Anna is Not Nothingness Anymore //
3 // (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo //
5 // See project site at http://redmine.teslayout.com/projects/anna-suite //
6 // See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
9 #ifndef anna_dbms_Float_hpp
10 #define anna_dbms_Float_hpp
12 #include <anna/core/RuntimeException.hpp>
14 #include <anna/dbms/Data.hpp>
21 Numero en coma flotante usado como entrada y/o salida de las sentencias SQL.
23 class Float : public Data {
27 \param isNulleable Indica si el dato puede tomar valores nulos.
28 \para format Indica el indicador de formato para pasar de cadena a numero. Usa la misma nomenclatura
29 que printf, scanf, etc. Su uso dependerá del gestor de base de datos usado.
31 explicit Float(const bool isNulleable = false, const char* format = "%f") :
32 Data(Type::Float, sizeof(float), isNulleable),
35 Data::setBuffer(&a_value);
40 \param other Instancia de la que copiar.
42 Float(const Float& other) : Data(other), a_value(other.a_value), a_format(other.a_format) {
43 Data::setBuffer(&a_value);
47 * Metodo obsoleto, debería usar #getValue.
48 Devuelve el contenido del campo de tipo Float.
49 \return el contenido del campo de tipo Float.
50 \warning Si el metodo Data::isNull devolvio \em true el resultado de este metodo no esta definido.
52 //float getFloatValue () const { return getValue (); }
55 * Devuelve el valor asociado a este campo.
56 * \return Devuelve el valor asociado a este campo.
58 float getValue() const { return a_value; }
61 * Devuelve el formato que indica la forma en la que el número será representado sobre
62 * una cadena, en caso de que fuera necesario.
64 const char* getFormat() const { return a_format; }
68 \param other Float del que copiar.
69 \return La instancia de esta cadena.
71 Float& operator = (const Float& other) noexcept(false) {
73 setNull(other.isNull());
74 a_value = other.a_value;
81 Operador de asignacion.
82 \param value Float del que copiar.
83 \return La instancia de esta cadena.
85 Float& operator = (const float value) noexcept(false) {
92 Operador de conversion.
93 \warning Si la columna asociada tiene un valor NULL, devolvera 0.0.
94 \return El contenido de esta cadena.
96 operator float() const { return getValue(); }
99 Devuelve una cadena con la informacion referente a esta instancia.
100 \return Una cadena con la informacion referente a esta instancia.
102 std::string asString() const ;
106 const char* a_format;
108 void do_clear() { a_value = 0.0; }