История изменений
Исправление Bioreactor, (текущая версия) :
В нормальном языке программирования это настраивается:
package hello;
import java.text.NumberFormat;
import java.util.Locale;
public class Test {
public static void main(String[] args) throws Exception {
String text = "2,71828";
NumberFormat nf = NumberFormat.getNumberInstance(Locale.FRANCE);
nf.setMaximumFractionDigits(5);
double val = nf.parse(text).doubleValue();
String s = nf.format(val);
System.out.println(s);
nf = NumberFormat.getNumberInstance(Locale.UK);
nf.setMaximumFractionDigits(5);
val = nf.parse(text).doubleValue();
s = nf.format(val);
System.out.println(s);
text = "2.71828";
nf = NumberFormat.getNumberInstance(Locale.FRANCE);
nf.setMaximumFractionDigits(5);
val = nf.parse(text).doubleValue();
s = nf.format(val);
System.out.println(s);
nf = NumberFormat.getNumberInstance(Locale.UK);
nf.setMaximumFractionDigits(5);
val = nf.parse(text).doubleValue();
s = nf.format(val);
System.out.println(s);
}
}
// 2,71828
// 271,828
// 2
// 2.71828
Можно настроить через _любой_ символ, какой пожелаете:
String text = "2_71828";
DecimalFormatSymbols dfs= new DecimalFormatSymbols(Locale.US);
dfs.setDecimalSeparator('_');
dfs.setGroupingSeparator('/');
DecimalFormat df = new DecimalFormat("0.#", dfs);
df.setMaximumFractionDigits(5);
double val = df.parse(text).doubleValue();
System.out.println(val);
String s = df.format(val);
System.out.println(s);
// 2.71828
// 2_71828
Можете даже преобразовывать форматы в «двуязычной» стране
package hello;
import java.text.NumberFormat;
import java.util.Locale;
public class TestCanadian {
public static void main(String[] args) throws Exception {
String text = "2,71828";
NumberFormat nf_in = NumberFormat.getNumberInstance(Locale.CANADA_FRENCH);
nf_in.setMaximumFractionDigits(5);
double val = nf_in.parse(text).doubleValue();
String s = nf_in.format(val);
System.out.println(s);
NumberFormat nf_out = NumberFormat.getNumberInstance(Locale.CANADA);
nf_out.setMaximumFractionDigits(5);
s = nf_out.format(val);
System.out.println(s);
}
}
// 2,71828
// 2.71828
Исправление Bioreactor, :
В нормальном языке программирования это настраивается:
package hello;
import java.text.NumberFormat;
import java.util.Locale;
public class Test {
public static void main(String[] args) throws Exception {
String text = "2,71828";
NumberFormat nf = NumberFormat.getNumberInstance(Locale.FRANCE);
nf.setMaximumFractionDigits(5);
double val = nf.parse(text).doubleValue();
String s = nf.format(val);
System.out.println(s);
nf = NumberFormat.getNumberInstance(Locale.UK);
nf.setMaximumFractionDigits(5);
val = nf.parse(text).doubleValue();
s = nf.format(val);
System.out.println(s);
text = "2.71828";
nf = NumberFormat.getNumberInstance(Locale.FRANCE);
nf.setMaximumFractionDigits(5);
val = nf.parse(text).doubleValue();
s = nf.format(val);
System.out.println(s);
nf = NumberFormat.getNumberInstance(Locale.UK);
nf.setMaximumFractionDigits(5);
val = nf.parse(text).doubleValue();
s = nf.format(val);
System.out.println(s);
}
}
// 2,71828
// 271,828
// 2
// 2.71828
Можно настроить через _любой_ символ, какой пожелаете:
String text = "2_71828";
DecimalFormatSymbols dfs= new DecimalFormatSymbols(Locale.US);
dfs.setDecimalSeparator('_');
dfs.setGroupingSeparator('/');
DecimalFormat df = new DecimalFormat("0.#", dfs);
df.setMaximumFractionDigits(5);
double val = df.parse(text).doubleValue();
System.out.println(val);
String s = df.format(val);
System.out.println(s);
// 2.71828
// 2_71828
Можете даже преобразовывать форматы в «двуязычной» стране
package hello;
import java.text.NumberFormat;
import java.util.Locale;
public class TestCanadian {
public static void main(String[] args) throws Exception {
String text = "2,71828";
NumberFormat nf_in = NumberFormat.getNumberInstance(Locale.CANADA_FRENCH);
nf_in.setMaximumFractionDigits(5);
double val = nf_in.parse(text).doubleValue();
String s = nf_in.format(val);
System.out.println(s);
NumberFormat nf_out = NumberFormat.getNumberInstance(Locale.CANADA);
nf_out.setMaximumFractionDigits(5);
s = nf_out.format(val);
System.out.println(s);
}
}
Исходная версия Bioreactor, :
В нормальном языке программирования это настраивается:
package hello;
import java.text.NumberFormat;
import java.util.Locale;
public class Test {
public static void main(String[] args) throws Exception {
String text = "2,71828";
NumberFormat nf = NumberFormat.getNumberInstance(Locale.FRANCE);
nf.setMaximumFractionDigits(5);
double val = nf.parse(text).doubleValue();
String s = nf.format(val);
System.out.println(s);
nf = NumberFormat.getNumberInstance(Locale.UK);
nf.setMaximumFractionDigits(5);
val = nf.parse(text).doubleValue();
s = nf.format(val);
System.out.println(s);
text = "2.71828";
nf = NumberFormat.getNumberInstance(Locale.FRANCE);
nf.setMaximumFractionDigits(5);
val = nf.parse(text).doubleValue();
s = nf.format(val);
System.out.println(s);
nf = NumberFormat.getNumberInstance(Locale.UK);
nf.setMaximumFractionDigits(5);
val = nf.parse(text).doubleValue();
s = nf.format(val);
System.out.println(s);
}
}
// 2,71828
// 271,828
// 2
// 2.71828
Можно настроить через _любой_ символ, какой пожелаете:
String text = "2_71828";
DecimalFormatSymbols dfs= new DecimalFormatSymbols(Locale.US);
dfs.setDecimalSeparator('_');
dfs.setGroupingSeparator('/');
DecimalFormat df = new DecimalFormat("0.#", dfs);
df.setMaximumFractionDigits(5);
double val = df.parse(text).doubleValue();
System.out.println(val);
String s = df.format(val);
System.out.println(s);
// 2.71828
// 2_71828