Gondim
Gondim

Reputation: 3048

Formatting Double into a String in iReport

I'm doing a report, that I need to join 4 variables in one. If I treat the variables separately I can format them with no problem. But when I merge them into a String, the double value comes as 0.0 instead of 0.00

How can I make it comes as the original, 0.00? The code right now looks like this:

$F{someDoubleField} + "a string" + $F{anotherDoubleField} + "another string"

It prints:

0.0 a string 0.0 another string

instead of:

0.00 a string 0.00 another string

Remember that iReport uses Java, so maybe, Java code can help me out.

Upvotes: 2

Views: 22158

Answers (4)

Rib47
Rib47

Reputation: 2516

Do the next:

  1. Open Properties window for your report (right-mouse click on top node in tree view -> Properties)
  2. Set the Language option to Java
  3. Use such code in your text field expression:

     String.format("%.2f",$V{Sum}) + " " + $F{unit} 

    Here

    2 - number of digits after dot
    $V{Sum} - Double or Floaf variable (or field - $F{...})

Upvotes: 3

kburns
kburns

Reputation: 792

Perhaps something like:

new DecimalFormat("0.00").format(new java.math.Double(($F{amount} == null) ? 0 : $F{amount}))

Upvotes: 0

user467871
user467871

Reputation:

use DecimalFormat

here is howto:

double d = 0.00;

NumberFormat nf = new DecimalFormat("0.00");
String format = nf.format(d);

System.out.println(d); //0.00

Upvotes: 0

Vishal
Vishal

Reputation: 20617

Use like below:

new DecimalFormat("0.00").format(doubleField) + "str"

Upvotes: 7

Related Questions