Java 如何指定十进制分隔符
我有一个相当简单的问题。我得到了像6.03这样的实数输入,但这给了我错误。如果我把它改成6,03,没关系。一、 但是,无法更改我需要处理的输入,因此如何告诉Java使用。作为分隔符而不是Java 如何指定十进制分隔符,java,double,delimiter,Java,Double,Delimiter,我有一个相当简单的问题。我得到了像6.03这样的实数输入,但这给了我错误。如果我把它改成6,03,没关系。一、 但是,无法更改我需要处理的输入,因此如何告诉Java使用。作为分隔符而不是 谢谢您可能遇到了区域设置问题。您可以使用 NumberFormat format = NumberFormat.getInstance(Locale.US); Number number = format.parse("6.03"); double d = number.doubleValue(); 区分区域
谢谢您可能遇到了区域设置问题。您可以使用
NumberFormat format = NumberFormat.getInstance(Locale.US);
Number number = format.parse("6.03");
double d = number.doubleValue();
区分区域设置的格式
前面的示例为默认区域设置创建了DecimalFormat对象。如果要为非默认语言环境使用DecimalFormat对象,请实例化NumberFormat,然后将其强制转换为DecimalFormat。下面是一个例子:
NumberFormat nf = NumberFormat.getNumberInstance(loc);
DecimalFormat df = (DecimalFormat)nf;
df.applyPattern(pattern);
String output = df.format(value);
System.out.println(pattern + " " + output + " " +
loc.toString());
运行前面的代码示例将得到以下输出。第二列中的格式化数字随区域设置的不同而不同:
###,###.### 123,456.789 en_US
###,###.### 123.456,789 de_DE
###,###.### 123 456,789 fr_FR
可以为扫描仪提供要使用的区域设置,您需要指定要使用的区域设置。作为十进制分隔符:
Scanner sc = new Scanner(System.in).useLocale(Locale.ENGLISH);
请出示你的密码。执行此转换有多种方法,我们不知道您在使用什么。添加了代码。我不认为这很重要,但这里goesSeems喜欢很多代码来实现这一点,考虑到在Delphi中可以只执行小数分隔符:=“|”;我们必须完成。谢谢though@Magicmaster:这大概是一个全球性的变化,影响全球国家?不是个好主意。。。
Scanner sc = new Scanner(System.in).useLocale(Locale.ENGLISH);