Re: Parsing of numeric values
wkbutler <[email protected]>
| Newsgroups | gmane.comp.web.freemarker.user |
|---|---|
| Message-ID | <[email protected]> |
Thank you Daniel. Makes sense, so I shall pursue another route.
To speak theoretically then... I did consider putting this logic into the
'C' part of MVC, but that breaks my use case. This application allows the
user to define macros (happily implemented with FM) against a pool of data,
and to define macros using the output of other macros (2nd-order macros).
Thus by definition, I have FM scripts that reference the output of other FM
scripts, which may possibly be mathematical expressions against formatted
numeric values.
A followup question...
In the past I have added custom processing methods by inserting a class
reference into the data Map given to the Template.process(..) method, i.e.
data.put("util", new DataUtil());
however my data map these days is a Map<String,String> so this will not
work.
Do I need to revert my dataset to a Map<String, Object>, or is there another
way to inject custom utilities?
Thanks again -
Daniel Dekany wrote:
>
> Tuesday, September 15, 2009, 4:34:22 AM, wkbutler wrote:
>
>>
>> Hello -
>> I am a bit confused on the built-in capability of FM to parse a localized
>> numeric expression,
>
> It's none. FM can convert simple "computer-audience number" strings
> back to numbers, because sometimes, for purely technical reasons, you
> get numbers "serialized" to text format. Parsing human-audience
> numbers is out of the scope of FM, and in theory you should deal with
> that in the C of MVC, not in the V. Means, although you can solve that
> in the V with a TempateMethdoModelEx (or with a #function), you might
> shouldn't do that.
>
>> and before I write a custom routine for this, maybe
>> there is wisdom I lack.
>>
>> I am trying to process a mathematical expression on the contents of a map
>> of
>> string data:
>>
>> ---------------
>> | a | 1,111 |
>> | b | 2,222 |
>> ---------------
>>
>> so a simple expression like
>> ${a?number + b?number}
>>
>> would work if the numbers were not localized, right?
>
> At least with this concrete example, yes.
>
>> That I have had success with.
>>
>> The original syntax
>> #{a} + #{b}
>>
>> is deprecated according to this page in the docs
>>
>> http://freemarker.sourceforge.net/docs/ref_depr_numerical_interpolation.html
>
> It is. Don't use it.
>
>> although trying this I get the error message:
>>
>> a is not a number, it is freemarker.template.SimpleScalar
>
> Unlike ?number, #{...} doesn't even try to convert strings to numbers.
>
>> Using the number built-in ?c and the string built-in
>> ?string.computer fail with similar messages,
>
> These convert a number (or date, etc.) to a string, not the other way
> around.
>
>> such as "Expected hash" etc. It seems I do not understand what data
>> type I am dealing with.
>
> notANumber?string is not a hash (aNumber?string is), but the dot (.)
> operator will expect a hash on its left side, hence it throws the
> above error. Yeah, a but tricky...
>
>> I would like to have have the 2 numbers added together and output with
>> the
>> default localized syntax. Am I looking past something?
>
> No, except maybe that, whatever view technology are you using
> (FreeMarker or not) it's not something that you should do in a the
> view layer of your application. At least usually it's not...
>
>> Thanks for ideas
>
> --
> Best regards,
> Daniel Dekany
>
>
> ------------------------------------------------------------------------------
> Come build with us! The BlackBerry® Developer Conference in SF, CA
> is the only developer event you need to attend this year. Jumpstart your
> developing skills, take BlackBerry mobile applications to market and stay
> ahead of the curve. Join us from November 9-12, 2009. Register
> now!
> http://p.sf.net/sfu/devconf
> _______________________________________________
> FreeMarker-user mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/freemarker-user
>
>
--
View this message in context: http://www.nabble.com/Parsing-of-numeric-values-tp25446898p25454340.html
Sent from the freemarker-user mailing list archive at Nabble.com.
------------------------------------------------------------------------------
Come build with us! The BlackBerry® Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9-12, 2009. Register now!
http://p.sf.net/sfu/devconf