There are many ways to handle the fractional part of a number, depending on the problem at hand. The real difficulty seems to be handling negative numbers. I like this, which rounds down negative numbers. But others might want a different way.
]'i f'=:|:0 1#:1.2 3.7 _2.1 1 3 _3 0.2 0.7 0.9 i 1 3 _3 f 0.2 0.7 0.9 i+f 1.2 3.7 _2.1 On Tue, Aug 8, 2017 at 3:56 PM, Skip Cave <s...@caveconsulting.com> wrote: > The purpose of the "negative fractional part" is to satisfy the identity > condition when the two parts are added back together: > > ]v=:2%(3r19-%1 2 3 245 246 247 248) NB. Create some long fractional > parts. > > _2.375 _5.84615 _11.4 13.0028 13.0014 13 12.9986 > > > fp=. * * 1|| NB. The fractional part verb > > ip=: * * <.@| NB. The integer part verb > > > ]fpv =: fp v NB. Save the fractional part > > _0.375 _0.846154 _0.4 0.0027933 0.00139082 0 0.998621 > > > ]ipv =: ip v NB. Save the integer part > > _2 _5 _11 13 13 13 12 > > > > ]sm =: ipv + fpv NB. Add the two parts back together > > _2.375 _5.84615 _11.4 13.0028 13.0014 13 12.9986 > > > NB. The result of adding the two parts should be identical to the original > vector. > > > sm = v > > 1 1 1 1 1 1 1 > > Skip Cave > Cave Consulting LLC > > On Tue, Aug 8, 2017 at 2:14 PM, 'Bo Jacoby' via Programming < > programm...@jsoftware.com> wrote: > > > The integer part a and the fractional part b of a number x is such > > that x=a+b and a is an integer and 0<:b and b<1 . I do know of no > use > > of a "negative fractional part". > > > > Den 20:39 tirsdag den 8. august 2017 skrev Raul Miller < > > rauldmil...@gmail.com>: > > > > > > I think we've mostly been using the wiki for live documents. (I'm not > > sure what all would be involved in changing the phrase book.) > > > > Thanks, > > > > -- > > Raul > > > > > > On Tue, Aug 8, 2017 at 2:35 PM, Skip Cave <s...@caveconsulting.com> > wrote: > > > It looks like we have a reliable solution to find a fractional part of > a > > > floating point number, while maintaining the sign: > > > > > > v > > > > > > _2.375 _5.84615 _11.4 13.0028 13.0014 13 12.9986 > > > > > > fp=. * * 1|| NB. Thanks to Martin > > > > > > fp v > > > > > > _0.375 _0.846154 _0.4 0.0027933 0.00139082 0 0.998621 > > > > > > > > > Credit should also go to the people who suggested the building blocks, > > e.g. > > > > > > (1|y) Raul -- (1||y) Pascal -- (*y) Raul > > > > > > It is also nice to have the companion verb - integer part: > > > > > > ip=: * * <.@| NB. Thanks to Louis > > > > > > ip v > > > > > > _2 _5 _11 13 13 13 12 > > > > > > > > > I have needed these functions more than once in my enginering work. I > > > believe that these two verbs need to be inserted somewhere in the > > "Numbers" > > > section of the J Phrases doc. Maybe under "8A-Numbers & Counting", or > > > 8C-Representations", or "8D-Arithmetic". > > > > > > > > > How do we get them in the document? What section do they fit the best > in? > > > Can I edit the Phrases doc? > > > > > > 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