我想在java中加总。
所以,
例如,
1.123 + 1.123E-4 = 0.0123411234
那么,我如何在java中处理“E”?
答案 0 :(得分:2)
使用BigDecimal
:
public static void main( String[] args ) {
BigDecimal bigDecimal1 = new BigDecimal( "1.123" );
BigDecimal bigDecimal2 = new BigDecimal( "1.123E-4" );
BigDecimal sum = bigDecimal1.add( bigDecimal2 );
System.out.println( sum );
}
输出:
1.1231123
答案 1 :(得分:1)
使用BigDecimal
课程。请参阅http://docs.oracle.com/javase/1.5.0/docs/api/java/math/BigDecimal.html#BigDecimal(java.lang.String)以获取将采用类似“1.123E-4”的字符串的构造函数。
答案 2 :(得分:0)
你的意思是这样的吗?
String a = "1.123";
String b = "1.123E-4";
double d1 = Double.valueOf(a);
double d2 = Double.valueOf(b);
System.out.println("sum = " + (d1 + d2));
Double的valueOf()
方法可以为您解析 E 表示法。
实际上,结果是:1.1231123
答案 3 :(得分:0)
嗯,你有没试过?
final class SciNotationTest {
public static void main(final String[] argv) {
final double sum = 1.123 + 1.123E-4;
System.out.println(sum);
assert 1.1231123 == sum;
}
}
C:\dev\scrap>javac SciNotationTest.java
C:\dev\scrap>java -ea SciNotationTest
1.1231123
使用double
并在没有容差的情况下测试相等性时应该小心,因为浮点通常是不精确的。如果您正在努力实现高精度,请务必使用BigDecimal
。
答案 4 :(得分:0)
使用Double.parseDouble()
执行此操作...
String n1 = "1.123";
String n2 = "1.123E-4";
double dn1 = Double.parseDouble(n1);
double dn2 = Double.parseDouble(n2);
System.out.println("Total : " + (dn1 + dn2));
<强>输出:强>
1.1231123