Solved

Number Formatting Question

Posted on 2006-11-28
5
1,199 Views
Last Modified: 2013-11-24

I have a servlet that returns an ArrayList of floats to a jsp.   These floats represent percentages and print by default values like .02777777778 and .333333333.    

1.  I would like to format these to 2 decimals.  eg 2.78% and 33.33% respectivlely.  Question 1 is how to do that?

2.  Where is the appropriate place to format these? in the Servlet or JSP?

[Servlet] ----form----> [JSP]

my servlet code looks like:
   ArrayList list = new ArrayList();
    while(xxx){  loop and add #'s
        list.add(new Float( a/b));
    }
   form.setList(list);


JSP Code is:
<nested:iterate id="el" property="list">
   <nested:write property="el"/>
</nested:iterate>
0
Comment
Question by:tmonteit
5 Comments
 
LVL 6

Expert Comment

by:SamsonChung
ID: 18029266
This might be of use to you

http://java.sun.com/docs/books/tutorial/i18n/format/decimalFormat.html

Also, do it in the Servlet. The less information you are passing between the pages the better...

0
 

Author Comment

by:tmonteit
ID: 18029486
Just so I'm straight how does it fit into my servlet code?

Say my form looks like this.

class myForm {
  private Float myData;
  // add getters / setters
}

In servlet;

  // How does the decimal formatter fit into here?
  // the form expects a Float, not a DecimalFormatter

  Float foo = 2.987373;
  form.setMyData(foo);

 
0
 
LVL 9

Expert Comment

by:owenli27
ID: 18029569
How about to add Strings into List instead of Float obj?

DecimalFormat formatter = new DecimalFormat("###.##");
while(xxx){  //loop and add #'s
    list.add(formatter.format(100 * a/b) + "%");
}
0
 
LVL 6

Expert Comment

by:SamsonChung
ID: 18030568
Float foo = 2.987373;
String pattern = "%";
DecimalFormat myFormatter = new DecimalFormat(pattern);
foo = myFormatter.format(foo);
form.setMyData(foo);
0
 
LVL 8

Accepted Solution

by:
reach2piyush earned 400 total points
ID: 18033777
It is done for display purpose(view), so that is the place it should be
either in your form bean or JSP

here are the choices:
 - in form bean, change your getter to give you the truncated value(java.text.NumberFormat or DecimalFormat)
 - in form bean, add another getter to give you the truncated value(java.text.NumberFormat or DecimalFormat)
 - in JSP. use JSTL Format Library <fmt:formatNumber maxFractionDigits=” 2”> {number}</fmt:formatNumber>
0

Featured Post

3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
ForLoop Example 3 48
Eclipse with gitlab 1 41
MySqlDump not dumping triggers 1 31
Tomcat: Unable to run tomcat service. 2 18
Are you developing a Java application and want to create Excel Spreadsheets? You have come to the right place, this article will describe how you can create Excel Spreadsheets from a Java Application. For the purposes of this article, I will be u…
Introduction This article is the first of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article explains our test automation goals. Then rationale is given for the tools we use to a…
Viewers learn about the “for” loop and how it works in Java. By comparing it to the while loop learned before, viewers can make the transition easily. You will learn about the formatting of the for loop as we write a program that prints even numbers…
Viewers will learn about the different types of variables in Java and how to declare them. Decide the type of variable desired: Put the keyword corresponding to the type of variable in front of the variable name: Use the equal sign to assign a v…

770 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question