Difference between revisions of "Template:Val/delimitnum"
Jump to navigation
Jump to search
blackwiki>Jimp (allow comma formatting per MOSNUM) |
blackwiki>Jimp (#ifeq:{{{fmt|gaps}}}|gaps belongs inside #ifexpr:({{{1|0}}}1)=({{{1|0}}}) (the rest is cosmetic)) |
||
| Line 1: | Line 1: | ||
| − | <includeonly> | + | <includeonly><!-- |
| − | |||
| − | |||
Test loss of precision by appending a fixed digit "1" | Test loss of precision by appending a fixed digit "1" | ||
| − | + | -->{{#ifexpr:({{{1|0}}}1)=({{{1|0}}})<!-- | |
| − | -->|<!-- | + | |
| − | + | -->|<!-- Precision is lost. Display an error message. | |
| + | -->{{FormattingError|Too Many Digits|nocategory={{{nocategory|}}}}}<!-- | ||
| + | |||
| + | -->|<!-- Precision is not lost. Display the number. | ||
| + | |||
Output the mathematical minus sign (not the minus-hyphen) if negative | Output the mathematical minus sign (not the minus-hyphen) if negative | ||
| − | + | -->{{#ifexpr:{{{1|0}}}<0|−}}<!-- | |
| − | + | ||
| − | + | Format according to the parameter fmt. | |
| − | -->{{val/delimitnum/whole|{{#expr:abs({{{1|0}}})}}}}<!-- | + | -->{{#ifeq:{{{fmt|gaps}}}|gaps<!-- |
| − | Format the integer part using (a) thin space(s) for grouping digits | + | |
| − | + | Test whether the number is an integer. | |
| − | + | (Appending a non-zero digit multiplies it by more than 10.) | |
| − | Format the | + | -->|{{#ifexpr:abs({{{1|0}}}9)>10*abs({{{1|0}}}) |
| − | + | |<!-- | |
| − | + | The number is an integer. | |
| − | + | Format it using (a) thin space(s) for grouping digits. | |
| − | + | Do not add a decimal point. | |
| + | -->{{val/delimitnum/whole|{{#expr:abs({{{1|0}}})}}}}<!--- | ||
| + | |||
| + | -->|<!-- | ||
| + | The number is not an integer. | ||
| + | Split the number into an integer part an a fractional part. | ||
| + | Format the integer part using (a) thin space(s) for grouping digits. | ||
| + | Add a decimal point. | ||
| + | |||
| + | -->{{val/delimitnum/whole|{{#expr:trunc(abs({{{1|0}}}))}}}}.<!-- | ||
| + | |||
| + | Format the fractional part using (a) thin space(s) for grouping digits. | ||
| + | |||
| + | -->{{val/delimitnum/fraction<!-- | ||
| + | -->|{{#expr:abs({{{1|0}}}1)-trunc(abs({{{1|0}}}1))}}<!-- | ||
The fractional part (appended with an extra digit 1 | The fractional part (appended with an extra digit 1 | ||
to avoid roundoff error on last displayed digit) | to avoid roundoff error on last displayed digit) | ||
| − | + | -->|{{#expr:(-ln(abs({{{1|0}}}1)-abs({{{1|0}}}))/ln10round 0)-1}}<!-- | |
The number of decimals to display (the difference of absolute values is | The number of decimals to display (the difference of absolute values is | ||
the value of the appended digit 1, its log10 gives its position) | the value of the appended digit 1, its log10 gives its position) | ||
| − | + | -->|nocategory={{{nocategory|}}}<!-- | |
category if formatting error (too many digits) | category if formatting error (too many digits) | ||
| − | + | -->}}<!-- | |
-->}}<!-- | -->}}<!-- | ||
| − | + | ||
| − | + | Format using commas to the left. | |
| − | }}</includeonly><noinclude>{{documentation}}</noinclude> | + | -->|{{formatnum:{{#expr:abs{{{1}}}}}}}<!-- |
| + | -->}}<!-- | ||
| + | -->}}</includeonly><noinclude>{{documentation}}</noinclude> | ||