On Wednesday 01 August 2001 10:55 am, Guido van Rossum wrote: > > I believe it is typically global per thread, but that's up to the > langage binding. A Java binding for Cowlishaw's decimals apparently > requires passing in a context as a third argument on each operation. I'm trying to understand how a decimal number context would work. Is the= =20 context a variable and/or flag that defines the rounding rules and precis= ion=20 of a number when it is used in a calculation? How is it associated with = a=20 number or a calculation? The "global per thread" description seems to=20 associate the context with threads. Can the context be altered inside th= e=20 thread? Is it possible to change the context at different levels in a=20 stackframe?=20 I would assume there is a default context will be used until the context = is=20 changed. If this is the case I would expect a default context would be=20 defined at startup. Would it make sense to have a simple decimal type with no features that c= an=20 be modified (a fixed context)? This simple type could be extended by deri= ving=20 a new numerical type from the base decimal type. This base decimal type=20 would be targeted at the newbie user. It would have no surprises. It wo= uld=20 have a default precision of 18 and the rules for rounding would emulate t= he=20 typical hand held calculator. Accountants who need special rounding rules= =20 would use a derived type that allowed the default rules to be overridden. It would be possible to round numbers of the simple based type, but it wo= uld=20 be an explicit step to remove insignificant digits. An accounting decima= l=20 type might automatically round calculations to the smallest denomination.= =20 For instance, an accounting context might have automatically managed the=20 final rounding in the following calculation: p>>> quantity =3D 6 >>> tax =3D .06 >>> price =3D 2.99 >>> total =3D price * quantity * (1 + tax) >>> total 19.0164 >>> round(total,2) 19.02 >>> > > M.-A. Lemburg" suggested looking at the SQL specification for Decima= l > > datatypes. A decimal type is also defined as a type in XML Schema.=20 > > Since this is an XML datatype there isn't a definition for how these > > numbers are created. > > Do these say anything about semantics under numeric operations? That > would seem to be outside the realm of XML and possibly even outside > SQL. So I'm not sure how these help. You are correct that it doesn't deal with numeric operations. It does de= fine=20 a minimum precision requirement. I am only referencing it here because i= t is=20 another instance where having a decimal type in Python would be useful an= d=20 because they have set a minimum requirement. Setting this minmum as a=20 default behavior would probably make newbies comfortable with the languag= e. =20 > > NOTE: All =B7minimally conforming=B7 processors =B7must=B7 support = decimal > > numbers with a minimum of 18 decimal digits (i.e., with a =B7totalDig= its=B7 > > of 18). However, =B7minimally conforming=B7 processors =B7may=B7 set = an > > application-defined limit on the maximum number of decimal digits the= y > > are prepared to support, in which case that application-defined maxim= um > > number =B7must=B7 be clearly documented. > > - http://www.w3.org/TR/xmlschema-2/#decimal
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4