gpt4 book ai didi

java - 为什么 double 乘以 -1 不会给出当前答案的负数

转载 作者:行者123 更新时间:2023-12-01 16:41:15 26 4
gpt4 key购买 nike

我试图将 double 值乘以 -1 以获得负值。它继续给我带来积极的值(value)

编辑:我正在放置所有代码。

公共(public)课 DecToTime {

public static void main(String[] args) throws IOException {

DecToTime dtt = new DecToTime();
double val = dtt.getNumber("13.930000000000E+02");
System.out.println(val);

}

public double getNumber(String number) throws IOException{

StringReader reader = new StringReader(number);
int c;
String mantissa="";
String sign="";
String exponent="";
boolean isMantissa=true;

while((c = reader.read()) != -1) {
char character = (char) c;
if(character=='E'){
isMantissa=false;
}
if(isMantissa==true){
mantissa=mantissa+character;
}

if(isMantissa==false){
if((character=='+')|| (character=='-')){
if(character=='+') {
sign = "plus";
}
if(character=='-') {
sign = "minus";
}
}
if(!(sign.equals(""))){
exponent=exponent+character;
}
}

}
System.out.println(mantissa+" - "+sign+" - "+exponent);
double man = Double.parseDouble(mantissa);
double exp;
if(sign.equals("plus")){
exp = Double.parseDouble(exponent);
}
else {
exp = Double.parseDouble(exponent);
System.out.println("Exp: "+exponent);
}
System.out.println(man+" - "+sign+" - "+exp);
double value = man*Math.pow(10, exp);
return value;
}

}

打印结果为

13.93 - minus - 2.0

这是正确的,除了 2.0 应该是 -2.0

最佳答案

我怀疑在 else 分支中,exp 的解析值已经是负数,因此对其求负会导致您看到的正值。尝试在否定之前打印出其值。

如果您显示/打印 exponent 的原始值,这肯定会对我们(和您)有所帮助。

关于java - 为什么 double 乘以 -1 不会给出当前答案的负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2468351/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com