Eric Beat me to it,

 should have refreshed GG, His solution is superior of course and worthy of 
the Core.

However mine still demonstrates the extendibility of tiddlywiki with only 
macros and wikitext.

Regards
Tones

On Saturday, 19 September 2020 at 18:51:30 UTC+10 TW Tones wrote:

> Werner,
>
> As you say, would be good in the core, but almost as good is a simple 
> macro.
>
> See attached and import to any wiki, then open $:/PSaT/format-numbers 
> <https://tiddlywiki.com/#%24%3A%2FPSaT%2Fformat-numbers> For instructions
>
> Syntax
> <<format-number n [t] [d] [p]>>
>
>    - *n* is the number with or without decimal places (no default)*t* is 
>    the thousands separator (optional) - defaults to ","
>       - (Can change default in format-number macro, set 
>       thousands-separator)
>    - *d* is the decimal separator (optional) - defaults to "."
>    - (Can change default in format-number macro, set decimal-separator)
>    - *p* is the decimal places to use (optional) - defaults to "2"
>    - (Can change default in format-number macro, set decimal-places)
>    
> For example <<format-number 1234567654321.6666>> results in 1, 
> <#m_8478119421336035852_%2C>234, <#m_8478119421336035852_%2C>567, 
> <#m_8478119421336035852_%2C>654, <#m_8478119421336035852_%2C>321.67 
>  
> *$:/PSaT/format-numbers/macro*
> \define format-number(n t d p)
> <$set name=thousands-separator value="$t$" emptyValue=",">
> <$set name=decimal-separator value="$d$" emptyValue=".">
> <$set name=decimal-places value="$p$" emptyValue="2">
> <$set name=fixed-decimal value={{{ [[$n$]fixed<decimal-places>] }}}>
> <$set name=integer value={{{ [<fixed-decimal>split[.]first[]] }}}>
> <$set name=remainder value={{{ [<fixed-decimal>split[.]last[]] }}}>
> <$set name=length filter="[<integer>length[]]">
> <$macrocall $name=each-digit length=<<length>> /><$list 
> filter="[<decimal-places>!match[0]]" 
> variable=nul><<decimal-separator>><<remainder>></$list>
> </$set></$set></$set></$set></$set></$set></$set>
> \end
> \define each-digit(length)
> \whitespace trim
> <$list filter="[range[1,$length$]]" variable=position>
> <$set name=digit filter="[[$(integer)$]split[]nth<position>]">
> <$set name=zeros filter="[[$length$]subtract<position>]">
> <<digit>>{{{ 
> [<zeros>!match[0]remainder[3]match[0]then<thousands-separator>] }}}
> </$set></$set>
> </$list>
> \end
>
> *Regards*
> *Tones*
> On Friday, 18 September 2020 at 23:20:14 UTC+10 Werner wrote:
>
>> Tony, 
>>
>> sorry, was absorbed by other projects, so couldn't reply earlier. OK, 
>> I'll be a bit more specific:
>>
>> I have a number stored in a JSON tiddler. When I retrieve it, I get plain 
>> old 3500 for example. But I want decimal points and comma separators to 
>> have it rendered like 3,500. Or 3.500 in German. Or whatever is your 
>> default locale. And, if DateFormat is included in the view widget, I think 
>> NumberFormat should also be. So I think, the most elegant solution would be 
>> extending the view widget source code to allow for "number" and pass it 
>> through to JavaScript intl.Numberformat (cf.: 
>> https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat).
>>  
>> Should not be that hard to implement. Maybe I try it, if I find the time.
>>
>> Of course there are plugins, but I think something as basic as a number 
>> format should be in the core.
>>
>> Werner
>>
>> TW Tones schrieb am Dienstag, 8. September 2020 um 02:32:41 UTC+2:
>>
>>> Post script
>>>
>>> Actualy i think using simple templates to display a number in a desired 
>>> format would be smart and the template can be changed to suit localisation 
>>> if not automaticaly respond to localisation. Macro access to templates is 
>>> also easy to provide.
>>>
>>> Tones
>>>
>>> On Tuesday, 8 September 2020 at 10:25:30 UTC+10 TW Tones wrote:
>>>
>>>> Werner
>>>>
>>>> Perhaps some examples?
>>>>
>>>> Evans formulae plugin has features to support this from memory. There 
>>>> are other maths plugins that may.
>>>>
>>>> I can imagin a gap that exists between basic maths and the more 
>>>> advanced maths especialy in relation to display.
>>>>
>>>> However i can see these gaps would be easy to solve with a few wiki 
>>>> text macros or taping into javascript functions that already handle it.
>>>>
>>>> Please research your percived gaps and post back some details.
>>>>
>>>> Tones
>>>>
>>>> On Tuesday, 8 September 2020 at 02:09:26 UTC+10 Werner wrote:
>>>>
>>>>> Guys,
>>>>>
>>>>> am I right that there is no TW-inherent way to display a number format 
>>>>> or, better, locale-specific number format?
>>>>>
>>>>> Wouldn't it be great if it was integral part of the <$view> widget, 
>>>>> much like date format is?
>>>>>
>>>>> Is there an easy fix? I mean, without having to install another plugin 
>>>>> just for this purpose.
>>>>>
>>>>> Thanks, Werner
>>>>>
>>>>

-- 
You received this message because you are subscribed to the Google Groups 
"TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywiki/a79b3c88-37ac-4229-aa8e-8f25dd37359dn%40googlegroups.com.

Reply via email to