如何在Java中将字符串3.0103E-7转换为0.00000030103?

如何在Java中将字符串3.0103E-7转换为0.00000030103?,java,formatting,numbers,Java,Formatting,Numbers,如何在Java中将字符串0E-11转换为0.00000000000?我想用非科学的符号来显示数字。我已经试着在Java中查看数字格式化程序,但是我需要指定我想要的小数的确切数目,但我并不总是知道。我只需要原始数字指定的小数位数。我会使用BigDecimal。将字符串作为参数传递给它,然后使用string.format表示新创建的BigDecimal,而不使用科学符号。 Float或Double类也可以使用。我没有尝试过,但可能会做你想做的。显然正确的答案是使用BigDecimal并检索精度和小数

如何在Java中将字符串0E-11转换为0.00000000000?我想用非科学的符号来显示数字。我已经试着在Java中查看数字格式化程序,但是我需要指定我想要的小数的确切数目,但我并不总是知道。我只需要原始数字指定的小数位数。

我会使用BigDecimal。将字符串作为参数传递给它,然后使用string.format表示新创建的BigDecimal,而不使用科学符号。
Float或Double类也可以使用。

我没有尝试过,但可能会做你想做的。

显然正确的答案是使用BigDecimal并检索精度和小数位数。然后在格式化程序中使用这些数字。类似的情况如下:

BigDecimal bg = new BigDecimal(rs.getString(i));
Formatter fmt = new Formatter();
fmt.format("%." + bg.scale() + "f", bg);
buf.append( fmt);
使用:

印刷品:

0.00000030103

这正是我的建议:)是的,尤金,但魔鬼在细节中;工作示例代码通常比描述更有用。例如,有人建议我在存储过程中使用EXEC(在Oracle 10g中)。这个想法是正确的(使用存储过程而不是函数),但细节(CALL与EXEC)是错误的。正如托瓦尔兹曾经说过的,“给我看看密码。”你在开玩笑吗?你需要什么样的细节?这已经很简单了。。。整个交易都是关于想法的。:)显然,这是唯一能解决我问题的方法!伟大的这是最简单的形式。应该是最好的答案
public static String removeScientificNotation(String value)
{
    return new BigDecimal(value).toPlainString();
}

public static void main(String[] arguments) throws Exception
{
    System.out.println(removeScientificNotation("3.0103E-7"));
}
0.00000030103