Template:Floor: Difference between revisions

From Zoophilia Wiki
Jump to navigationJump to search
meta>Verdy p
mNo edit summary
meta>Verdy p
m explain the bugs
Line 27: Line 27:


; Known bug (should appear extremely rarely as this goes beyond the precision of math performed in pages using this template)
; Known bug (should appear extremely rarely as this goes beyond the precision of math performed in pages using this template)
* <tt><nowiki>{{</nowiki>{{PAGENAME}}<nowiki>|</nowiki>-0.999999999999999<nowiki>}}</nowiki></tt> = {{{{PAGENAME}}|-0.999999999999999}} (OK).
* <tt><nowiki>{{</nowiki>{{PAGENAME}}<nowiki>|</nowiki>0.99999999999999983<nowiki>}}</nowiki></tt> = {{{{PAGENAME}}|0.99999999999999983}} (OK).
* <tt><nowiki>{{</nowiki>{{PAGENAME}}<nowiki>|</nowiki>-0.9999999999999999<nowiki>}}</nowiki></tt> = <span style="color:red">{{{{PAGENAME}}|-0.9999999999999999}}</span> (wrong for now and unexplainable, how to correct it?).
* <tt><nowiki>{{</nowiki>{{PAGENAME}}<nowiki>|</nowiki>0.99999999999999984<nowiki>}}</nowiki></tt> = <span style="color:red">{{{{PAGENAME}}|0.99999999999999984}}</span> (wrong but comes from limited floating point precision, the input is considered equal to the exact integer 1).
* <tt><nowiki>{{</nowiki>{{PAGENAME}}<nowiki>|</nowiki>-1.9999999999999999<nowiki>}}</nowiki></tt> = {{{{PAGENAME}}|-1.9999999999999999}} (OK).
* <tt><nowiki>{{</nowiki>{{PAGENAME}}<nowiki>|</nowiki>0.99999999999999999<nowiki>}}</nowiki></tt> = <span style="color:red">{{{{PAGENAME}}|0.99999999999999999}}</span> (wrong but comes from limited floating point precision, the input is considered equal to the exact integer 1).
''Note that this bug is not in this template itself, and not even in the MediaWiki software, but comes from the current version of the PHP language used to run this software. It may not affect other wikis, depending on the PHP version used.''
 
* <tt><nowiki>{{</nowiki>{{PAGENAME}}<nowiki>|</nowiki>-0.99999999999999983<nowiki>}}</nowiki></tt> = {{{{PAGENAME}}|-0.99999999999999983}} (OK).
* <tt><nowiki>{{</nowiki>{{PAGENAME}}<nowiki>|</nowiki>-0.99999999999999984<nowiki>}}</nowiki></tt> = <span style="color:red">{{{{PAGENAME}}|-0.99999999999999984}}</span> (wrong but comes from limited floating point precision, the input is not exactly equal to the integer -1, but substracting 0.5 yields -1.5 exactly, which rounds to -2).
* <tt><nowiki>{{</nowiki>{{PAGENAME}}<nowiki>|</nowiki>-0.99999999999999999<nowiki>}}</nowiki></tt> = <span style="color:red">{{{{PAGENAME}}|-0.99999999999999999}}</span> (OK, the input is considered equal to the exact integer -1, so this exact -1 integer is returned).


; See also<nowiki>:</nowiki>
; See also<nowiki>:</nowiki>

Revision as of 07:15, 3 May 2006

Template:Template documentation Implements the mathematical floor function, i.e. returns the input value if it is an integer, otherwise returns the largest integer below the input value.

For negative numbers, the decimals will be simply dropped. For positive numbers, it will also truncate the displayed decimals but the integer part of the absolute value displayed is incremented. This is the mathematical definition of the IEEE rounding mode toward plus infinite.

Usage:
{{Floor|value}}
Examples:
  • {{Floor|3.9}} = 3.
  • {{Floor|3.5}} = 3.
  • {{Floor|3.1}} = 3.
  • {{Floor|3.0}} = 3.
  • {{Floor|1.0}} = 1.
  • {{Floor|0.9}} = 0.
  • {{Floor|0.5}} = 0.
  • {{Floor|0.1}} = 0.
  • {{Floor|0.0}} = 0.
  • {{Floor|-0.1}} = -1.
  • {{Floor|-0.5}} = -1.
  • {{Floor|-0.9}} = -1.
  • {{Floor|-1.0}} = -1.
  • {{Floor|-3.0}} = -3.
  • {{Floor|-3.2}} = -4.
  • {{Floor|-3.5}} = -4.
  • {{Floor|-3.9}} = -4.
Known bug (should appear extremely rarely as this goes beyond the precision of math performed in pages using this template)
  • {{Floor|0.99999999999999983}} = 1 (OK).
  • {{Floor|0.99999999999999984}} = 1 (wrong but comes from limited floating point precision, the input is considered equal to the exact integer 1).
  • {{Floor|0.99999999999999999}} = 1 (wrong but comes from limited floating point precision, the input is considered equal to the exact integer 1).
  • {{Floor|-0.99999999999999983}} = -2 (OK).
  • {{Floor|-0.99999999999999984}} = -2 (wrong but comes from limited floating point precision, the input is not exactly equal to the integer -1, but substracting 0.5 yields -1.5 exactly, which rounds to -2).
  • {{Floor|-0.99999999999999999}} = -1 (OK, the input is considered equal to the exact integer -1, so this exact -1 integer is returned).
See also:

fr:Modèle:Floor