Обрезка Двойной до 2 знаков после запятой
должен быть простым. Я изначально собирался сделать это в javascript, но должен сделать это до установки формы на странице моего обработчика. В любом случае мне нужно, чтобы эти значения имели 2 десятичных знака. Пример 219333.5888888 должен быть 219333.58. Есть функция отделки или что-то еще?
form.setUnitRepairCost(Double.toString(jobPlanBean.getUnitTotalCost())); //UNIT REPAIR COST
form.setUnitMaterialCost(Double.toString(jobPlanBean.getUnitTotalMaterialCost())); //UNIT MATERIAL COST
Ответы
Ответ 1
вот простой пример для форматирования десятичного значения
import java.text.*;
public class DecimalPlaces {
public static void main(String[] args) {
double d = 1.234567;
DecimalFormat df = new DecimalFormat("#.##");
System.out.print(df.format(d));
}
}
Ответ 2
public static void main(String[] args) {
double d = 6.3546;
DecimalFormat df = new DecimalFormat("#.##");
System.out.print(df.format(d));
}
Ответ 3
Для получения двойной спины, а не строки:
double d = 80.123;
DecimalFormat df = new DecimalFormat("#.##");
double p = Double.parseDouble(df.format(d));
Ответ 4
умножьте double на 100.0 и передайте его в int, затем возьмите этот int и передайте его в double и разделите на 100.0
int temp = (int)(longDouble*100.0);
double shortDouble = ((double)temp)/100.0;
Ответ 5
Как насчет:
new java.text.DecimalFormat("0.00").format( yourNumber );
Ответ 6
Здесь можно манипулировать строками, чтобы урезать двойное значение до буксировки десятичных знаков.
public static String truncateUptoTwoDecimal(double doubleValue) {
String value = String.valueOf(doubleValue);
if (value != null) {
String result = value;
int decimalIndex = result.indexOf(".");
if (decimalIndex != -1) {
String decimalString = result.substring(decimalIndex + 1);
if (decimalString.length() > 2) {
result = value.substring(0, decimalIndex + 3);
} else if (decimalString.length() == 1) {
result = String.format(Locale.ENGLISH, "%.2f",
Double.parseDouble(value));
}
}
return result;
}
return null;
}
Ответ 7
Да, DecimalFormat: http://www.exampledepot.com/egs/java.text/FormatNum.html
Ответ 8
Посмотрите на использование десятичного формата:
DecimalFormat twoDForm = new DecimalFormat("#.##");
Ответ 9
DecimalFormat Класс
Ответ 10
public static double truncateDecimals(double d, int len) {
long p = pow(10, len);
long l = (long)(d * p);
return (double)l / (double)p;
}
public static long pow(long a, int b) {
long result = 1;
for (int i = 1; i <= b; i++) {
result *= a;
}
return result;
}
Ответ 11
Используя эти два метода, вы также можете обрабатывать все исключения:
private String convertedBalance(String balance){
String convertedBalance = balance.toString();
Double d;
try {'enter code here'
d = Double.parseDouble(balance.toString());
Log.i("ConvertedNumber", "d (amount) = "+d.toString());
d = round(d, 2);
DecimalFormat f = new DecimalFormat("0.00");
convertedBalance = f.format(d);
Log.i("ConvertedNumber", "convertedBalance = "+convertedBalance);
}catch (NumberFormatException e){
Log.i("ConvertedNumber", "Number format exception");
}
return convertedBalance;
}
public static double round(double value, int places) {
if (places < 0) throw new IllegalArgumentException();
BigDecimal bd = new BigDecimal(value);
bd = bd.setScale(places, RoundingMode.HALF_UP);
return bd.doubleValue();
}