Re: [gnome-db] How do I read a GdaNumeric as a gdouble?
- From: "Daniel Espinosa" <esodan gmail com>
- To: "Murray Cumming" <murrayc murrayc com>
- Cc: GNOME-DB List <gnome-db-list gnome org>, Vivien Malerba <vmalerba gmail com>
- Subject: Re: [gnome-db] How do I read a GdaNumeric as a gdouble?
- Date: Fri, 17 Mar 2006 07:43:30 -0600
2006/3/15, Murray Cumming <murrayc murrayc com>:
On Wed, 2006-03-15 at 14:00 -0600, Daniel Espinosa wrote:
>
>
> 2006/3/15, Murray Cumming <murrayc murrayc com>:
> On Wed, 2006-03-15 at 13:33 +0100, Vivien Malerba wrote:
> > On 3/15/06, Juan Pablo <jpdborgna yahoo com ar> wrote:
> > > With v=(GdaValue *)
> > >
> gda_data_model_get_value_at(dm,gda_data_model_get_column_position(dm,"stock1a"),0);
> > > i get a numeric (from database) and i want to use it like
> this (in the
> > > ideal world...)
> > >
> gtk_spin_button_set_value(GTK_SPIN_BUTTON(lookup_widget(widget,"stock1a")),
> > > gda_value_get_double(v));
> > > But it is numeric, so im afraid i have to stringify it and
> then
> > > g_strotod it (it works but its ugly).
> > >
> > > ¿Is there any direct way to do it?
> >
> > For the moment you need to either use a string
> representation, or
> > build your own gdouble value from the GdaNumeric structure.
> >
> > However, I've added in my local working repository a
> function to
> > transform a GdaValue into another one called
> g_value_transform() which
> > you'll be able to use instead (but I've not yet committed
> it).
>
> Some kind of get_value_numeric_as_double() would be a lot
> simpler.
>
> GdaNumeric contains a string representation of the number
> (presumably as
> per the C locale, hopefully). At the moment, I need to parse
> that string
> representation to a double myself.
>
> Why it is used the GdaNumeric structure?
>
> Is realy necesary?
>
> If we think about that GdaValue is a GValue, you can store a long
> value and get transform, etc.
I don't believe that a long can store a floating point value (with a
decimal point).
You're right, but gdouble yes, then:
Who is using the GdaNumeric to store values?
Why don't store gdouble or gfloat when the providers return a value?
The client just nead to test if is it a double or a float using G_VALUE_TYPE(value) to know the returned type.
When I work in the port of GdaValue to GValue, I'll try to not modify
the API for it, and not modify the provider's code; now and view the
changes, and if not exist a good reazon to keep the actual API, I can
simplify it. For example, I can use GDate enstead GdaDate and allow the
client to use the GLib API to manipulate dates; and this apply to all
the types like GdaNumeric, GdaTime and GdaMoney.
May elliminate the G_VALUE_TYPE_* #define, and use only the
G_VALUE_TYPE, derive some types like GdaMoney form gfloat and others,
to allow the client still know if is getting a Money type from the
server and manipulate usign the standart locate functions to print or
stringify it; of course this changes afact directly to the providers
but may, in the future, create a more consistent API to use Values.
--
Trabajar, la mejor arma para tu superación
"de grano en grano, se hace la arena" (R) (entrámite, pero para los cuates: LIBRE)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]