Package java.math

Examples of java.math.BigDecimal.scale()


                    request.put("item_" + lineNumber + "_productName", item.getString("description"));
                }
                // get the quantity..
                BigDecimal quantity = item.getBigDecimal("quantity");
                // test quantity if INT pass as is; if not pass as 1
                if (quantity.scale() > 0) {
                    request.put("item_" + lineNumber + "_quantity", "1");
                } else {
                    request.put("", Integer.toString(quantity.intValue()));
                }
                // set the amount to 0.0000 -- we will send a total too.
View Full Code Here


                throw new ValidationException(err);
            }
            temp = null;
        }

        if (_fractionDigits != -1 && clean.scale() > _fractionDigits) {
            String err = "BigDecimal " + bd + " has too many fraction digits -- must have "
                    + _fractionDigits + " fraction digits or fewer";
            throw new ValidationException(err);
        }
View Full Code Here

        /*
         * la précision doit être >= 0...
         */
        if(p<0) throw new InterpreterException(StdErrors.extend(StdErrors.Out_of_range, "precision "+p+" must be >= 0" ));
        BigDecimal r=number.get();
        int digits=r.precision()-r.scale();
        MathContext mc=context.get();
        MathContext nmc = new MathContext(digits<0 ? p+1 : p + digits, mc.getRoundingMode()); // more precision...
        context.getAndSet( nmc );                 
        return null;
    }
View Full Code Here

     * @throws Exception
     */
    public Node external_get_precision(Node startAt) throws Exception {
        startAt.isGoodArgsCnt(1);
        BigDecimal r=number.get();
        int digits=r.precision()-r.scale();
        MathContext mc=context.get();
        return new Node(digits<0 ? Math.abs(digits)-1 : mc.getPrecision() - digits);
    }
   
    /**
 
View Full Code Here

    public Node external_precision(Node startAt) throws Exception {
        startAt.isGoodArgsCnt(2);
        int c=(int)startAt.getSubNode(1, Node.TYPE_NUMBER).getNumber();
        if(c<0) throw new InterpreterException(StdErrors.extend(StdErrors.Out_of_range, "precision "+c+" must be >= 0" ));
        BigDecimal r=number.get();
        int digits=r.precision()-r.scale();
        MathContext mc=context.get();
        MathContext nmc = new MathContext(digits<0 ? c+1 : c + digits, mc.getRoundingMode()); // more precision...
        return Node.createExternal(new External_Decimal(number.get().round(nmc),nmc));
    }
   
View Full Code Here

    public Node external_mutator_precision(Node startAt) throws Exception {
        startAt.isGoodArgsCnt(2);
        int c=(int)startAt.getSubNode(1, Node.TYPE_NUMBER).getNumber();
        if(c<0) throw new InterpreterException(StdErrors.extend(StdErrors.Out_of_range, "precision "+c+" must be >= 0" ));
        BigDecimal r=number.get();
        int digits=r.precision()-r.scale();
        MathContext mc=context.get();
        context.getAndSet( new MathContext(digits<0 ? c+1 : c + digits, mc.getRoundingMode()) );
        number.getAndSet(number.get().round(context.get()));
        return null;
    }
View Full Code Here

            /**
             * Attention! La division doit être limitée par me contexte, sinon une division comme 1/3 donne lieu à une execption.
             */
            try {
                BigDecimal v=number.get();
                int digits=Math.abs(v.precision()-v.scale());
                MathContext nmc = new MathContext(mc.getPrecision() + digits, mc.getRoundingMode()); // more precision...
                return Node.createExternal(new External_Decimal(d.divide(number.get(), nmc),mc));
            }
            catch (ArithmeticException ex) {
                // prévoir la gestion de l'exception division par zéro sur exception seulement.
View Full Code Here

             */
            MathContext nmc = new MathContext(mc.getPrecision() + 2, mc.getRoundingMode()); // more precision...
            for (int i = 1; i < asize; ){
                BigDecimal v=_getArg_(startAt, i++);
                int digits0=Math.abs(r.precision()-r.scale());
                int digits1=Math.abs(v.precision()-v.scale());
                nmc = new MathContext(nmc.getPrecision() + digits0 + digits1, mc.getRoundingMode()); // more precision...
                r = r.divide(v, nmc);
            }
        }
        catch (ArithmeticException ex) {
View Full Code Here

            BigDecimal r;
            do {
                old_r = number.get();
                r = old_r;
                for (int i = 0; i < v.length; i++){
                    int digits0=Math.abs(r.precision()-r.scale());
                    int digits1=Math.abs(v[i].precision()-v[i].scale());
                    nmc = new MathContext(nmc.getPrecision() + digits0 + digits1, mc.getRoundingMode()); // more precision...
                    r = r.divide(v[i],nmc);
                }
            }
View Full Code Here

    {
        // We've used a char[] rather than a StringBuffer for a 4x speedup
        // -YY(10)YY-MM-DDTHH:MM:SS.FFFFFF+ZH:ZM
        // 1 + 10   + 3+ 3+ 3+ 3+ 3+1 + s + 3+ 3 = 33 + s
        BigDecimal fs = spec.getFraction();
        char[] message = new char[33 + (fs == null ? 0 : fs.scale())];
        int i = 0;

        if (spec.hasYear() || spec.hasMonth() || spec.hasDay())
        {
            dmy: {
View Full Code Here

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.