I have a Java GUI code to calculate a data range, for example, if two values 2.444 and 3.555 , the result will be a long double 1.11100000... etc. How to indicate how many digits after the decimal point should be displayed? (ex: %.2f )
2.444
3.555
1.11100000...
%.2f
This is my code:
public class Range { public static void main(String args[]) { int num=0; //number of data double d; //the data double smallest = Integer.MAX_VALUE; double largest = Integer.MIN_VALUE; double range = 0; String Num = JOptionPane.showInputDialog("Enter the number of data "); num=Integer.parseInt(Num); for(int i=0; i<num; i++) { String D = JOptionPane.showInputDialog("Enter the data "); d=Double.parseDouble(D); if(d < smallest) smallest = d; if(d > largest) largest = d; } range = largest - smallest ; //calculating the range of the input JOptionPane.showMessageDialog(null,"Range = "+smallest+"-"+largest+" = "+range,"Range",JOptionPane.PLAIN_MESSAGE); } }
You can use String.format to determine the result you need, for example
String.format("Range = %.4f", range)
to show 4 decimal places.
DecimalFormat . Below is an example form here
import java.text.DecimalFormat; import java.text.NumberFormat; public class DecimalFormatExample { public static void main(String[] args) { // We have some millons money here that we'll format its look. double money = 100550000.75; // By default to toString() method of the Double data type will print // the money value using a scientific number format as it is greater // than 10^7 (10,000,000.00). To be able to display the number without // scientific number format we can use java.text.DecimalFormat wich // is a sub class of java.text.NumberFormat. // Below we create a formatter with a pattern of #0.00. The # symbol // means any number but leading zero will not be displayed. The 0 // symbol will display the remaining digit and will display as zero // if no digit is available. NumberFormat formatter = new DecimalFormat("#0.00"); // Print the number using scientific number format. System.out.println(money); // Print the number using our defined decimal format pattern as above. System.out.println(formatter.format(money)); } }
Use this one:
double x = new Random.nextDouble(); //ex: x = 0.126521478419346598 x = Math.round(x*1000)/1000.0; //x will be: 0.126
add this instance of DecimalFormat to the top of your method:
DecimalFormat three = new DecimalFormat("0.000"); // or this. this will modify the number to have commas every new thousandths place. DecimalFormat three = new DecimalFormat("#,##0.000"); // the three zeros after the decimal point above specify how many decimal places to be accurate to. // the zero to the left of the decimal place above makes it so that numbers that start with "0." will display "0." vs just "." If you don't want the "0.", replace that 0 to the left of the decimal point with "#"
then call this instance and pass it a string on display:
String str = 4.651681351; display.setText(three.format(str)); // displays 4.652
Source: https://habr.com/ru/post/1388048/More articles:Rails 3.1 named_scope - ruby | fooobar.comChanging buffer focus control (pop-to-buffer vs display-buffer) - emacsAre jQuery utility functions preferable to regular function definitions? - javascriptFlex Mobile Alarm - Local Notification - androidHow do I send a URL request to a server using Python without actually opening my browser ("without using a web browser module")? - pythonGetting Null Pointer exception when using isEmpty () method - javasend string with two parameters - javascriptCheck SQL Server date and time overlap for event scheduling - sqlHow can I search and replace regular expressions in excel VBA macro? - excel-vbaPerform operations for the second component of each item in a list in Mathematica - wolfram-mathematicaAll Articles