镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

"Precision" is the total number of significant digits in a number (e.g. for 1.234, precision = 4, not 3). What you're using it for (decimal places) is usually called the "scale" #7

Description

@hikari-no-yume

Activity

  1. Bilge commented on Dec 30, 2015

    @Bilge
    Member

    Is there a good source to verify this?

  2. Bilge commented on Dec 30, 2015

    @Bilge
    Member

    I'm not sure if a dictionary is appropriate here since we're talking about mathematical usage of terms rather than English usage.

  3. drrcknlsn commented on Dec 31, 2015

    @drrcknlsn

    Every major RDBMS you can think of uses the precision/scale terminology.

  4. Bilge commented on Dec 31, 2015

    @Bilge
    Member

    @drrcknlsn Thank you for the large number of sources. In the database world this represents a clear consensus of terminology.

    Furthermore, I found an article on Numerical Precision from Wolfram which uses the terms precision and accuracy. These are equivalent to precision and scale as used in the database world. More to the point, it is clear that precision is never used to refer to digits to the right of the decimal point so this bug is now confirmed.

  5. okdana commented on Dec 31, 2015

    @okdana
    Contributor

    FYI, this kind of relates to the number_format() suggestion i had. Presuming that something to that effect will go in, this change seems like it'd be intertwined with it

  6. okdana commented on Dec 31, 2015

    @okdana
    Contributor

    btw, one can probably be forgiven for using 'precision' here, since PHP itself uses it the same way

  7. Bilge commented on Dec 31, 2015

    @Bilge
    Member

    @okdana That's interesting. Also, Wolfram uses the term accuracy, but accuracy is just a synonym for precision anyway. I think this places the terminology under dispute once more until more sources can authoritatively declare the correct naming.

  8. okdana commented on Jan 1, 2016

    @okdana
    Contributor

    I personally use 'precision' in conversation to describe number of decimal places, but i have a very poor grasp of mathematics, so idk. I did some Google research and i found the following:

    I could only find a few specs that use 'precision' un-ambiguously to refer to decimal places:

    • PHP's round(), as previously mentioned
    • In dc, the 'precision value' sets the 'number of fraction digits'

    Several are ambiguous, inconsistent, or irrelevant:

    • The POSIX C printf() specification uses 'precision' for both digits before radix (for %i) and digits after radix (for %f)
    • Almost all other languages with printf() or a similar (PHP, Perl, Python, Ruby) use the POSIX terminology for those features
    • Perl's Math::BigFloat uses 'precision' similarly to POSIX

    These side-step the issue entirely:

    • PHP's number_format() uses $decimals
    • Python's round() uses ndigits
    • Ruby's Float.round() uses ndigits
    • JavaScript's Number.prototype.toFixed() uses digits
    • Java's NumberFormat and friends use 'fraction digits' to refer to digits after the radix
    • Microsoft languages (e.g. Math.Round() in C#) use decimals

    These use 'scale' for digits after the radix:

    • As @drrcknlsn mentioned, seemingly all RDMBSes
    • Java's BigDecimal (c.f. setScale())
    • bc, as well as its PHP bindings (c.f. bcscale())

    I think it's probably valid outside of a formal arithmetic context to use 'precision' to refer to number of decimal places, but now that i know the 'proper' term, i would probably have used 'scale' instead, personally.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions