Understanding numberformat

Mark Waddingham mark at livecode.com
Fri Apr 6 08:18:46 EDT 2018


On 2018-04-06 13:17, Klaus major-k via use-livecode wrote:
> Hi friends,
> 
> maybe I have a little understanding problem with numberformat.
> Looks like this is "temporary/fleeting"?
> 
> Meanwhile I worked around this with the FORMAT() function,
> but would like to understand the problem.
> 
> I have this button script:
> ###############################################################
> ## Neccessary function, since in most non-enlsih speaking countries 
> like germany
> ## we use the COMMA as a decimal delimiter
> ## Neccessary for calculations
> ## tZahl = tNumber
> ## ohne_komma = without comma
> function ohne_komma tZahl
>   replace "," with "." in tZahl
>   return tZahl
> end ohne_komma
> 
> ## mit_komma = with comma
> ## Neccessary for displaying numbers
> function mit_komma tZahl
>    replace "." with "," in tZahl
>    return tZahl
> end mit_komma
> 
> on mouseUp pMouseButton
>    put 10  into menge ## amount
>    put "2,3" into preis ## price
> 
>    set the numberformat to 0.00
>    put ohne_komma(menge) into menge
>    put ohne_komma(preis) into preis
>    put  menge * preis into ergebnis ## result
> 
> ##!!!
>    answer ergebnis ## -> 23.00
>    answer mit_komma(ergebnis) ## -> 23
> ##!!!
> 
> end mouseUp
> ###############################################################
> 
> The last 2 lines of the mouseup handler are puzzling me, what do I not 
> get?
> Thanks for any insight!

The numberFormat is a local property and is only used when a number gets 
converted to a string...

put menge * preis into ergebnis -- ergebnis is a number
answer ergebnis -- ergebnis is converted to a string using the 
numberFormat 0.00 and passed to 'answer'.

In the last line 'answer mit_komma(ergebnis)' you are passing ergebnis 
(a number) to a function. In the function, that number is converted to a 
string using the default numberFormat (as it is local to handlers, and 
you have not set it) as you are using 'replace' on it.

So, the 'issue' here is the locality of numberFormat.

Warmest Regards,

Mark.

-- 
Mark Waddingham ~ mark at livecode.com ~ http://www.livecode.com/
LiveCode: Everyone can create apps




More information about the use-livecode mailing list