Java 将字符串转换为double并在double中获取字符串的原始值
我想将我的值从字符串转换为双精度:Java 将字符串转换为double并在double中获取字符串的原始值,java,string,double,Java,String,Double,我想将我的值从字符串转换为双精度: String mystring = "0.0100"; Double d = Double.parseDouble(mystring); 此字符串来自我的编辑文本 问题是我的输入字符串是0.0100,但当我将其转换为双倍时,它只会给我0.01 我怎样才能从double中获得原始字符串 根据示例,我需要所有的零。简单的答案是“你不能使用Double” “double”值以二进制形式存储。在106.4000中,尾随十进制零的概念在“双精度”值中毫无意义 你的问题
String mystring = "0.0100";
Double d = Double.parseDouble(mystring);
此字符串来自我的编辑文本
问题是我的输入字符串是0.0100,但当我将其转换为双倍时,它只会给我0.01
我怎样才能从double中获得原始字符串
根据示例,我需要所有的零。简单的答案是“你不能使用Double”
“double”
值以二进制形式存储。在106.4000中,尾随十进制零的概念在“双精度”值中毫无意义
你的问题听起来像是BigDecimal
public static void main(String[] args) {
String mystring = "0.0100";
Double d = Double.parseDouble(mystring);
System.out.println("Double : "+d);
BigDecimal bigDecimal = new BigDecimal(mystring);
System.out.println("BigDecimal : "+bigDecimal);
}
输出
Double : 0.01
BigDecimal : 0.0100
使用以下代码,它可能会帮助您
String mystring = "0.0100";
Double d = new DecimalFormat("##.####").format(Double.parseDouble(mystring));
double存储浮点值。小数点后四位和右边0填充的概念是一个显示问题(即与值分开)。因此,将您的价值以某种方式格式化,例如
System.out.printf("%.4f, d");
改用BigDecimal
String mystring = "0.0100";
BigDecimal b = BigDecimal(mystring);
System.out.println("Value b: "+b);//"0.0100"
这是不可能的,如果你把它存储到一个double中,你至少需要重新格式化它。。。如果需要将数字转换回字符串,请尝试使用字符串格式选项()@DaDaDom,我不想将数字转换回字符串。我只想字符串编号(作为原始字符串)!!!如果有5个0,比如0.0100000,可能会重复什么?我认为您的格式需要
“##.0000”
,以确保所有四位小数都显示出来。是的,但我告诉您1之后的零的数量不是固定的。@DegenSharew在这种情况下,双精度本身就可以工作,因为小数点后的数字末尾有一个零值。它没有任何价值。因此它没有被显示出来。如果小数部分的零后有数字,则会显示出来。