Double value truncated to two decimal places without rounding the value.

I want to truncate double value to two decimal places without doing the rounding of the value.
Is there any method which can directly do the truncation.

There's many ways to achieve this such as using
BigDecimal's setScale method or type-casting. This is
the way I like to do it:double d = -5.239;
d = d > 0 ? Math.floor(d * 100) / 100.0 : Math.ceil(d
* 100) / 100.0;
Your division by 100 may cause an rounding error, because there are numbers which no finite binary representation. That's splitting hairs! I know ;-)

Similar Messages

  • Formatting amount to 2 decimal places without rounding the value

    Hi 
    My requirement is to format the amount field, when I am using the simple type and setting the format as ###,##0.00 then it is rounding off the value.  Foe example say the amount is 3,567.236 in this case it rounds it off to 3,567.24 which I do not want we want the value to display as 3,567.23.  Does anyone have any idea how this can be achieved.
    Thank you
    Regards,
    Preet

    Use the following :
    BigDecimal bigDecimalh = new  BigDecimal("22.335642");
              bigDecimalh = bigDecimalh.setScale(2, BigDecimal.ROUND_DOWN);
    Regards,
    Himanshu

  • Printing two decimal places from BigDecimal values

    I am using BigDecimal to represent money values. My output needs to line up so that (with a non-proportional font) the decimal point and the two decimal places are in the same columns for each line. But when the dollar value has zero cents, or has a number of cents that is divisible by ten, it drops the trailing zeroes, and drops the decimal point if the decimal places are both zeroes. For example, I want to see "25.00" instead of "25" and "25.50" instead of "25.5". It doesn't seem to make any difference if I set the scale to 2. (I have resorted to getting the toString() of the BigDecimal and hacking the string before I display it, but surely there must be an easier way?)
          BigDecimal aaa = new BigDecimal("25");
          BigDecimal bbb = new BigDecimal("25.0");
          BigDecimal ccc = new BigDecimal("25.00");
          BigDecimal ddd = new BigDecimal("25.5");
          BigDecimal eee = new BigDecimal("25.50");
          BigDecimal fff = new BigDecimal("25.75");
          aaa.setScale(2);
          bbb.setScale(2);
          ccc.setScale(2);
          ddd.setScale(2);
          eee.setScale(2);
          fff.setScale(2);
          System.out.println("SCALE SET TO 2: ");
          System.out.println("aaa = " + aaa);
          System.out.println("bbb = " + bbb);
          System.out.println("ccc = " + ccc);
          System.out.println("ddd = " + ddd);
          System.out.println("eee = " + eee);
          System.out.println("fff = " + fff);produces this output:
    SCALE SET TO 2:
    aaa = 25
    bbb = 25.0
    ccc = 25.00
    ddd = 25.5
    eee = 25.50
    fff = 25.75Thanks,
    Martin

    Thankyou Dr. Clap. This solved my problem - I added an LHS to the setScale statements:
          aaa = aaa.setScale(2);
          bbb = bbb.setScale(2);
          ccc = ccc.setScale(2);
          ddd = ddd.setScale(2);
          eee = eee.setScale(2);
          System.out.println("SCALE SET TO 2: ");
          System.out.println("aaa = " + aaa);
          System.out.println("bbb = " + bbb);
          System.out.println("ccc = " + ccc);
          System.out.println("ddd = " + ddd);
          System.out.println("eee = " + eee);produced:
    SCALE SET TO 2:
    aaa = 25.00
    bbb = 25.00
    ccc = 25.00
    ddd = 25.50
    eee = 25.50

  • Round off to two decimal places

    hi
    i have a filed in it values are there i want to round off to two decimal places
    which is the function module for it please suggest
    regards
    Arora

    Hi Nishant Arora,
    Please check this code.
    DATA: N1 TYPE P DECIMALS 4 VALUE '0.0565',
               N2 TYPE P DECIMALS 2.
    MOVE N1 TO N2.
    WRITE: N2.
    Here the value is get rounded to 0.06.
    Rather than function modules you go with this. I think it is easier.
    Reward points if useful.
    Cheers,
    Swamy Kunche

  • How can I limit a double value to two decimal place?

    How can I limit a double value to two decimal place?
    Java keeps on adding zero's to a simple double subtraction:
    1497 - 179.64 = 1317.3600000000001The answer must have been simply: 1317.36

    If the trouble is with output ...
    If the trouble is with value accuracy ...The trouble is with OPs understanding of and/or expectations of IEEE 754 floating point numbers. o_O
    [And it's probably a view (output) issue.]
    how can i actually use numberformat to cut those
    unwanted decimal places?Read the API - Puce already provided the link.

  • How to correct a double value to two decimal places

    hi,
    How to correct a double value to two decimal places
    eg.
    double tt=100.100032
    i want to correct to 2 decimal places
    ie tt=100.10
    regards,
    jagan

    Check my other reply on the other thread. Please don't cross-post.

  • Storeing values in floate data type upto two decimal places

    Hi
    I want a float type field in my table but want to store value up to two decimal places.
    so what syntax i need to follow plz suggest.
    thanks

    it is not possible to store with Number datatype. if you are using the data to sho report, then change its format (like 45 to 45.00). if you want to store 45.00 in database, then you have to modify the datatype for that column. for this follow the following path
    1. Add a column of datatype Varchar2.
    2. Copy all the value of your number field to it.
    3. Drop the old column.
    4. However make sure that if you have used that column somewhare in arithmetic calculation, the modify it and use to_number function to do arithmetic opration.

  • Reduce the field value from three decimal places to two decimal places

    hi experts,
    plz help me with this
    actually i have to display the  value of the field MENGE in the list with two decimal places.
    but when i go and see the field menge in the table mseg it is having three decimal places.
    so could u plz suggest me how to solve this.
    regards
    siri

    Please try using the DEIMALS extension of the WRITE statement.
    data: menge type menge_D value '1234'.
    write:/ menge decimals 2.
    Regards,
    RIch HEilman

  • Any function module to round of a value to two decimal places?

    Hi gurus,
    Any function module to round of a value to two decimal places?

    Hi,
    you can use FM 'ROUND'.
    Thanks.

  • Help!printing float values with two decimal places

    hi there java pips! im a newbie to this technology so forgive me for this really stupid question....i would like to perform mathematical operations on two float values....the problem is i want to print them in a standard format and that is i want them to be displayed with two decimal places (e.g 190.00, 12,72, 1,000.01) how can i do this?

    Try java.text.DecimalFormat
    NumberFormat nf = new DecimalFormat("0.00");
    System.out.println(nf.format(x));

  • Trunc percentage two decimal places

    I have a report that has the option of dispalying pdf or excel. I have the pdf version working fine but i am having a little trouble on the excel version. I have a grand total and department total. Basically I need help formating two decimal places. Both dept_total and grand_total are numbers that both display. I have another column that displays what percent of the total is from each dept.It currently returns a number such as 10.23383547957459973 which i need to display as 10.23 How can i incorporate the trunc function into this code?
    ...to_char((dept_total/grand_total) *100)
    The query looks similar to this.
    select
    to_char(a._grand_total)
    ,to_char(a.dept_total)
    ,to_char((dept_total/grand_total) *100)
    from(
    select sum(xxxx) grand_total,
    sum(xxxx) dept_total
    from table)a

    Hi,
    Since you're calling TO_CHAR anyway, you can add a 2nd argument, specifying two decimal places:
    select
         a._grand_total
    ,     a.dept_total
    ,     to_char ((dept_total/grand_total) *100,       '999999999.99')     AS pct
    from     (
             select  sum (xxxx) grand_total,
                      sum (xxxx) dept_total     -- Why have two copies of the same value?
             from    table
         )a If you're not using a 2nd argument, why use TO_CHAR at all in this query?
    This will round the value, not truncate it. That is, if the value is 10.23<b>5</b>83547957459973, it would display '10.2<b>4</b>', not '10.2<b>3</b>'. If you always want to round toward 0 (rather than to the nearest multiple of .01), then use TRUNC.

  • Rounding off a float to two decimal places

    I want to make a function where I shall pass a float and and integer.
    The float shall have to be rounded off to a value in the integer.
    Can anyone please suggest how to round off a float.
    E.g.: if the float is 12.56890 and I want to round it off to 2 decimal places, then it should be 12.57.
    Regards
    Hawker

    I didn't mention any datatypes like float, double.True, but that is what the question is about, so you weren't answering the question. For a change.
    As I mentioned, that was just a mathematical steps to round of the floating point value. (Not in any programming languages point of view).False. You didn't mention that at all.
    This is the code for that in java.So here you are mentioning datatypes and floats for the same piece of mathematics that you have already been told, with reasons, doesn't work in floating point.
    which seems to be working fine
    Seems to. What evidence do you have that the float actually got rounded? As opposed to got displayed as rounded? Which is not what the OP asked for.
    And of course all that code seems to do is round 0.01 to two decimal places, which again is not what the OP asked for.
    For any remaining fans of this 'technique', please explain the behaviour of the following code:
         public static void     main(String[] args)
              int     count = 0, errors = 0;
              for (double x = 0.0; x < 1; x += 0.0001)
                   count++;
                   double     d = x;
                   int     scale = 2;
                   double     factor = Math.pow(10, scale);
                   d = Math.round(d*factor)/factor;
                   if ((d % 0.01) != 0.0) // if 'd' really has been rounded this should be zero
                        System.out.println(d % 0.01);
                        errors++;
              System.out.println(count+" trials "+errors+" errors");
         }

  • Result to two decimal places

    Hi I have the following code for currency conversion, now I want that when a converted currency result is for example 1.8 it displays 1.80 ie to two decimal places. how is this done? thanks
    private void converteurosButtonActionPerformed(java.awt.event.ActionEvent evt) {                                                  
    //Parse Euros as a double and convert to GBP.
        DecimalFormat df = new DecimalFormat("#,###.##");
        double gbp = (double) (Double.parseDouble(eurosTextField1.getText())) * 0.796345;       
        convertedeurosLabel.setText("� "+df.format(gbp));

      private static DecimalFormat format = new DecimalFormat("0.00");
      private String format(double value) {
        return format.format(value);
    // call  as
    format(2.999);

  • Two decimal places

    Hello, i want to have my results in my shop apllication in two decimal places. I tried DecimalFormat f = new DecimalFormat("#.##"); with import java.text.DecimalFormat; but it doesnt change the decimal places.
    And when i try this class example which i found on http://www.roseindia.net/java/beginners/RoundTwoDecimalPlaces.shtml it says that inner classes cannot have static declarations on public static void main(String[] args) {          and     public static float Round(float Rval, int Rpl) {
    Im using netbeans 5,5, does someone know what the problem is?
    public class RoundTwoDecimalPlaces{
    public static void main(String[] args) {
    float num = 2.954165f;
    float round = Round(num,2);
    System.out.println("Rounded data: " + round);
    public static float Round(float Rval, int Rpl) {
    float p = (float)Math.pow(10,Rpl);
    Rval = Rval * p;
    float tmp = Math.round(Rval);
    return (float)tmp/p;
    Edited by: javaboy on Nov 11, 2007 12:46 PM

    package view;
    import java.awt.Color;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.ArrayList;
    import javax.swing.JButton;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import controller.index;
    import model.product;
    import java.text.*;
    public class View_basket extends JPanel implements ActionListener{
         private static final long serialVersionUID = 1L;
         private index index;
         private JButton btnGoToPay;
         private JLabel[] lblProducts, lblPrices;
         private int countProducts;
         private int offset=40;          // # of pixels from the top
         private int increment=20;     // the next product will appear this amount of pixels below it's predecessor
         private JPanel container;
         public View_basket(index index){
              this.container = new JPanel(null);
              this.container.setName("Shopping basket");
              this.container.setBackground(new Color(151, 186, 225));          
              this.container.setSize(190,200);
              this.container.setLocation(550,20);
              this.index=index;
         public JPanel updateGui(){
              System.out.println("class view.View_basket.updateGui()");
              ArrayList products = index.basket.getProducts();
              countProducts = products.size();
              // if product basket is to big, resize the basket frame
              if(countProducts > 6){
                   this.container.setSize(190,(300+((countProducts-6)*10)));     
              lblProducts = new JLabel[countProducts];
              lblPrices = new JLabel[countProducts];
              JLabel lblTitle = new JLabel();
              lblTitle.setText("Winkelmand");
              lblTitle.setBounds(5, 5, 150, 20);
              lblTitle.setFont(index.FONT_12_BOLD);
              this.container.add(lblTitle);
              int teller=offset;
              double total=0;
              // walk trough all values from the arrayList
              for(int i=0; i < countProducts; i++){
                   product product = (product)products.get(i);
                   lblProducts[i] = new JLabel(product.toString());
                   lblProducts.setBounds(5, teller, 130, 20);
                   lblProducts[i].setFont(index.FONT_10_PLAIN);
                   this.container.add(lblProducts[i]);
                   lblPrices[i] = new JLabel("? "+ product.getPrice());
                   lblPrices[i].setBounds(140, teller, 150, 20);
                   lblPrices[i].setFont(index.FONT_10_PLAIN);
                   this.container.add(lblPrices[i]);
                   teller +=increment;
                   total += product.getPrice();
              // create total labels
              JLabel lblTotal = new JLabel("Totaal: ");
              lblTotal.setBounds(5, teller, 50, 20);
              lblTotal.setFont(index.FONT_10_BOLD);
              this.container.add(lblTotal);
              // create total labelseeuro
              JLabel lblTotalPriceeuro = new JLabel("? "+ total);
              lblTotalPriceeuro.setBounds(140, teller, 50, 20);
              lblTotalPriceeuro.setFont(index.FONT_10_BOLD);
              this.container.add(lblTotalPriceeuro);
    // create total labelsdollar
              JLabel lblTotalPricedollar = new JLabel("$ "+ total*1.45);
              lblTotalPricedollar.setBounds(140, teller, 50, 40);
              lblTotalPricedollar.setFont(index.FONT_10_BOLD);
              this.container.add(lblTotalPricedollar);
              int btnOffset = this.container.getHeight()-25;
              btnGoToPay = new JButton("Betalen...");
              btnGoToPay.setBounds(5, btnOffset, 180, 20);
              btnGoToPay.setFont(index.FONT_12_BOLD);
              btnGoToPay.addActionListener( this );     
              if(countProducts == 0)
                   btnGoToPay.setEnabled(false);
              this.container.add(btnGoToPay);
              return container;
         public void actionPerformed(ActionEvent event) {
              // if the pay button is pressed
              if(event.getSource().equals(btnGoToPay)){
                   ((View_pay) index.panelPay).updateGui();
                   index.showPanel("View_pay");

  • Rounding to 2 decimal places WITHOUT using any formatting class

    Hello
    I'm trying to round a number (double) to 2 decimal places without using any of the formatting class like (DecimalFormat or Math.Round and BigDecimal). Is it possible to do it by just using typecast?

    OP:
    BigDecimal is not a formatting class. Math.round isn't a class at all.
    Typecasting doesn't really do that sort of thing at all (unless you count dropping fractional components when casting to an integer type).
    double holds values in binary format, so it's basically impossible to round to decimal values meaningfully.
    Chuck:
    I thought that BigDecimal supported arbitrary decimal precision, so one doesn't have to do that sort of thing....?

Maybe you are looking for

  • Open Source project

    Open Source Project Announcement... I have started an open source project to build a module for PHP4 that will allow direct calls to Tuxedo services from the PHP script, the project name is php-tuxedo. Think about it for a second... The ability from

  • What will happen when I put my jailbroken iPhone 4 in the computer?

    I have a jailbroken iphone 4 still running on 4.3.2 firmware and I would like to get rid of the jailbreak and update it to 5. I understand that it will take my jailbreak off, which I have no problem with, but I'm terrified to plug into the computer.

  • Searching for My lost Nokia 9500 Communicator

    Hi. Thanks for your support. I lost my Nokia 9500 communicator two weeks ago. I have notified the police, but I haven't received any news till now. Is there any technical way to find its location and recover it? I have backup stored in my PC. How can

  • How to display folders of my e-Mail account on my ...

    Hello! I set up my t-online.de mailaccount on my C7 using the setup-program. I can receive and send mails, but i can not see the Mails in my self created folders at t-online.de. Is there a possibility to Import these folders on my mobile? Ciao Rainer

  • Syncing Bookmarks Problem

    I have an iPad Air 7.1.2 and a Macbook Air 10.9.3 running iTunes 11.2.2.  I am unable to sync my bookmarks  between them.  When i open iTunes > Info, there is no option to manually sync bookmarks.  We have to sync via iTunes since iCloud is blocked a