Template:Val/delimitnum: Difference between revisions
From Zoophilia Wiki
Jump to navigationJump to search
meta>Jimp allow comma formatting per MOSNUM |
meta>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> |