I should add how it works:

On the right, 10^(The position of '.' in the number minus 1)
On the left, remove '.' and parse as number
In the middle, apply x: to both sides and divide.

Also, how can I go about actually debugging domain errors? Both sides
seem to be zero-dimensional.

On Wed, 6 Jan 2021 at 10:20, 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

Reply via email to