Thanks, guys. Great starting point.

Werner

TW Tones schrieb am Samstag, 19. September 2020 um 10:53:45 UTC+2:

> 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_1244614928399698320_m_8478119421336035852_%2C>234, 
>> <#m_1244614928399698320_m_8478119421336035852_%2C>567, 
>> <#m_1244614928399698320_m_8478119421336035852_%2C>654, 
>> <#m_1244614928399698320_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/deece0c3-f87b-4ad3-b453-5137dbb7b445n%40googlegroups.com.

Reply via email to