So here’s what I came up with. Pretty simple. on mouseUp put 5.226 into myVar set the numberFormat to "0.00" add .001 to myVar put myvar & cr into myString set the numberFormat to "0.000" put myvar after myString put myString end mouseUp
I get 5.23 5.227 Clearly the value in the variable is not being affected at all. This makes me feel a lot better. The moral of this is, always set the numberFormat appropriately prior to calculations of any kind, and don’t use the contents of fields in calculations. Bob S > On Feb 4, 2015, at 15:20 , J. Landman Gay <[email protected]> wrote: > > It's obscure, yes, though the dictionary has this: > > "Important! Changing the numberFormat does not automatically change the > format of a number that's already in a container. It affects numbers only > when they are calculated and then displayed or used as strings. Otherwise, > the number retains its full numeric precision." > > The "already in a container" should be more precise though and specify "in a > variable". Fields are containers, but they only hold strings. > > > On 2/4/2015 5:02 PM, Graham Samuel wrote: >> Thanks Jacque, a gold mine of information as usual. But it’s pretty obscure, >> isn’t it? All this started for me because I wanted to test if two numbers >> were equal, knowing that they probably weren’t exactly equal to the last >> decimal place but nevertheless were ‘engineering equal’ as it were - say to >> six places of decimals. So I tried to truncate them to that length and then >> compare them. More fool me. But now I think I know what should be done, >> thanks to you - and to everyone else who replied. >> >> Graham >> >> >>> On 4 Feb 2015, at 23:44, J. Landman Gay <[email protected]> wrote: >>> >>> On 2/4/2015 3:01 PM, Graham Samuel wrote: >>>> So really, if I want an uncomplicated string of characters derived >>>> from a number via setting the numberFormat and then doing a >>>> calculation, how do I get it? >>> >>> You can turn it into a string by putting empty after it: >>> >>> put 1.55555 into tVar -- number >>> set the numberformat to "0.00" >>> add 1 to tVar -- still a number >>> put tVar into fld 1 -- numberformat applied now, field contains a string >>> "2.55" >>> add 1 to tVar -- still a number, contains 3.55555 >>> put empty after tVar -- numberformat applies, tVar is a string >>> >>> -- >>> Jacqueline Landman Gay | [email protected] >>> HyperActive Software | http://www.hyperactivesw.com >>> >>> _______________________________________________ >>> use-livecode mailing list >>> [email protected] >>> Please visit this url to subscribe, unsubscribe and manage your >>> subscription preferences: >>> http://lists.runrev.com/mailman/listinfo/use-livecode >> >> >> _______________________________________________ >> use-livecode mailing list >> [email protected] >> Please visit this url to subscribe, unsubscribe and manage your subscription >> preferences: >> http://lists.runrev.com/mailman/listinfo/use-livecode >> > > > -- > Jacqueline Landman Gay | [email protected] > HyperActive Software | http://www.hyperactivesw.com _______________________________________________ use-livecode mailing list [email protected] Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
