I would not combine those ideas.

Either should work alone, just fine (though you need to be careful
that you've always got .00 for the ones that need it, if you are
removing the decimal point).

FYI,

-- 
Raul

On Wed, Jan 6, 2021 at 2:20 AM Justin Paston-Cooper
<paston.coo...@gmail.com> wrote:
>
> Thanks for the suggestion. I've combined Don's idea of using x: and
> your idea of removing the point and parsing that to handle all numbers
> of digits after the decimal point:
>
> stringToRational =: ((_&".)@(-.&'.') %&:x: 10&^@(<:@# - (i.&'.'))
>
> stringToRational '666.66' should give 333r50.
>
> Sadly this is giving a domain error, even though both sides of the
> fork work alone. Could anyone suggest how to fix this?
>
> On Tue, 5 Jan 2021 at 19:14, Jimmy Gauvin <jimmy.gau...@gmail.com> wrote:
> >
> > IF your strings always have two numbers after the decimal point you could
> > remove the point before converting to numeric.
> >
> > NB.Remove decimal point
> >    '.' -.~  each '123.45' ; '1456.12'
> > ┌─────┬──────┐
> > │12345│145612│
> > └─────┴──────┘
> >
> > NB. Convert to numeric
> >    _ ". > '.' -.~  each '123.45' ; '456.12'
> > 12345 45612
> >
> > NB. type 4 is integer
> >    3!:0 ] _ ". > '.' -.~  each '123.45' ; '456.12'
> > 4
> >
> > On Tue, Jan 5, 2021 at 10:43 AM Justin Paston-Cooper <
> > paston.coo...@gmail.com> wrote:
> >
> > > Hello,
> > >
> > > I am reading in tab-separated files with readdsv from 'tables/dsv'.
> > > Some columns consist of exact decimal numbers like 6.66. These generally
> > > involve amounts of a decimal currency. These are read in by readdsv as
> > > boxed strings. makenum from 'tables/csv' converts these strings to
> > > floats. I would like these strings to be converted exactly to
> > > rationals. How can I go about this in the easiest and most efficient
> > > way? I could not find information on parsing data types from strings.
> > >
> > > Thanks in advance,
> > >
> > > Justin
> > > ----------------------------------------------------------------------
> > > For information about J forums see http://www.jsoftware.com/forums.htm
> > >
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to