All, Thanks for the help. Here's some real numbers from a problem I'm working on: Calculate some values from this equation: v=:2%(3r19-%1 2 3 245 246 247 248) v _2.375 _5.84615 _11.4 13.0028 13.0014 13 12.9986 Raul's first suggestion: 1|v 0.625 0.153846 0.6 0.0027933 0.00139082 0 0.998621 More precision, but signs are wrong on the negative numbers.
Nolaig's suggestion: (- <.) v 0.625 0.153846 0.6 0.0027933 0.00139082 1.77636e_15 0.998621 Negative signs are still wrong, and the 6th entry should be zero. Looks like a compare tolerance problem. Pascal's solution: 1 (| |)v 0.375 0.846154 0.4 0.0027933 0.00139082 0 0.998621 Still has the negatives wrong. Martin's solution: fp=.**1|| fp v _0.375 _0.846154 _0.4 0.0027933 0.00139082 0 0.998621 Negatives are right, zeroes are right. This fractional part verb needs to be in the documentation as part of the numbers chapter. Also the integer part verb: ip=.]-**1|| should be included in the numbers section as well. ip v _2 _5 _11 13 13 13 12 Skip Skip Cave Cave Consulting LLC On Sun, Aug 6, 2017 at 6:42 AM, Raul Miller <rauldmil...@gmail.com> wrote: > 1&| does work, actually. > > And, if you want an offset of -1 on that result when the original > value was negative, you can use (1&| - 0&>) > > Thanks, > > -- > Raul > > On Sun, Aug 6, 2017 at 3:19 AM, Martin Kreuzer <i...@airkreuzer.com> > wrote: > > In easy steps (and for further reference) ... > > > > From these test data (two floats, two integers, different signs), to get > the > > fractional parts > > > > v=. 2.25 _8.11 16 _3 > > > > simply taking the Residue (when dividing by 1) doesn't work (error at > > negative float position) > > > > 1|v > > 0.25 0.89 0 0 > > > > So first get Magnitude > > > > | v > > 2.25 8.11 16 3 > > > > then take Residue > > > > 1 | (| v) > > 0.25 0.11 0 0 > > > > then get the sign right (see Raul's remark below) > > > > (*v) * (1 | | v) > > 0.25 _0.11 0 0 > > > > and put it as verb (fp), written as a fork > > > > fp=. * * 1|| > > fp v > > 0.25 _0.11 0 0 > > > > -M > > > > > > At 2017-08-06 02:14, you wrote: > > > >> Eh... but that's wrong. You can't add any integer to 0.542857 to get > >> _0.542857. > >> > >> If you want signed fractions, you'd need something like (*@] * (| |)) > >> > >> Thanks, > >> > >> -- > >> Raul > >> > >> > >> On Sat, Aug 5, 2017 at 10:01 PM, 'Pascal Jasmin' via Programming > >> <programm...@jsoftware.com> wrote: > >> > combining other answers we get the cute: > >> > >> > 1 (| |) _0.542857 _1.1875 1.96552 2.92308 4.13043 5.7 7.82353 10.8571 > >> > 15.5455 23.75 > >> > >> > >> > >> > >> > ________________________________ > >> > From: Bill <bbill....@gmail.com> > >> > To: "programm...@jsoftware.com" <programm...@jsoftware.com> > >> > Sent: Saturday, August 5, 2017 8:30 PM > >> > Subject: Re: [Jprogramming] Fractional parts > >> > >> > >> > >> > this also depends on what do you expect for negative numbers. > >> > >> > Sent from my iPhone > >> > >> > On 6 Aug, 2017, at 7:35 AM, Skip Cave <s...@caveconsulting.com> > wrote: > >> > >> >> Oops! i meant: > >> >> > >> >> How does one find the fractional parts of a vector of floating point > >> >> numbers? > >> >> > >> >> 0.542857 1.1875 1.96552 2.92308 4.13043 5.7 7.82353 10.8571 15.5455 > >> >> 23.75 > >> >> 41.8 114 247 > >> >> > >> >> i want: > >> >> 0.542857 0.1875 0.96552 0.92308 0.13043 0.7 0.82353 0.8571 5.5455 > 0.75 > >> >> 0.8 > >> >> 0 0 > >> >> > >> >> (Last two integers have zero fractional part.) > >> >> > >> >> > >> >> Skip Cave > >> >> Cave Consulting LLC > >> >> > >> >> On Sat, Aug 5, 2017 at 6:30 PM, Skip Cave <s...@caveconsulting.com> > >> >> wrote: > >> >> > >> >>> How does one find the fractional parts of a vector of floating point > >> >>> numbers? > >> >>> > >> >>> 0.542857 1.1875 1.96552 2.92308 4.13043 5.7 7.82353 10.8571 15.5455 > >> >>> 23.75 > >> >>> 41.8 114 247 > >> >>> > >> >>> i want: > >> >>> 0.542857 0.1875 0.96552 0.92308 0.13043 0.7 0.82353 0.8571 5.5455 > 0.75 > >> >>> 0.8 > >> >>> 114 247 > >> >>> > >> >>> Skip > >> >>> > >> >>> Skip Cave > >> >>> Cave Consulting LLC > >> >> ------------------------------------------------------------ > ---------- > >> >> 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 > > > > > > ---------------------------------------------------------------------- > > 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