Java 双倍数字
如何在Java中将Double转换为数字,如下面的代码所示Java 双倍数字,java,double,type-conversion,type-mismatch,Java,Double,Type Conversion,Type Mismatch,如何在Java中将Double转换为数字,如下面的代码所示 public Number parse(String text, ParsePosition status) { // find the best number (defined as the one with the longest parse) int start = status.index; int furthest = start; double bestNumber = Double.NaN;
public Number parse(String text, ParsePosition status) {
// find the best number (defined as the one with the longest parse)
int start = status.index;
int furthest = start;
double bestNumber = Double.NaN;
double tempNumber = 0.0;
for (int i = 0; i < choiceFormats.length; ++i) {
String tempString = choiceFormats[i];
if (Misc.regionMatches(start, tempString, 0, tempString.length(), text)) {
status.index = start + tempString.length();
tempNumber = choiceLimits[i];
if (status.index > furthest) {
furthest = status.index;
bestNumber = tempNumber;
if (furthest == text.length()) break;
}
}
}
status.index = furthest;
if (status.index == start) {
status.errorIndex = furthest;
}
int c= 0;
return new Double(bestNumber);
}
实际上,此代码属于java.text
包中的ChoiceFormat.java
类。使用casting
Double d=new Double(2);
Number n=(Number)d;
就你而言
Double d=new Double(bestNumber);
Number n=(Number)d;
return n;
使用铸造
Double d=new Double(2);
Number n=(Number)d;
就你而言
Double d=new Double(bestNumber);
Number n=(Number)d;
return n;
是的一个子类。因此,如果从返回java.lang.Number
的方法返回java.lang.Double
,则发布的代码不应显示任何编译错误
正如Jon Skeet指出的,“你在某处有不同的双精度类型或不同的数字类型”。请仔细检查您是否正在使用java.lang.double
,java.lang.Number
是的子类。因此,如果从返回java.lang.Number
的方法返回java.lang.Double
,则发布的代码不应显示任何编译错误
正如Jon Skeet指出的,“你在某处有不同的双精度类型或不同的数字类型”。请仔细检查您是否正在使用
java.lang.double
和java.lang.Number
,这表明您在某处使用了不同的double
类型或不同的Number
类型。您可以尝试使用声明类型java.lang.Number
和返回新的java.lang.Double(bestNumber)使其显式化代码>我在日食中没有遇到任何这样的错误,你可以把它放在某个地方,表明你有一个不同的Double
类型或一个不同的Number
类型。您可以尝试使用声明类型java.lang.Number
和返回新的java.lang.Double(bestNumber)使其显式化代码>我在日食中没有收到任何这样的错误,你可以把它放在那里,但是没有必要这样做。或者更确切地说,如果这段代码能够工作,那么原始代码应该能够工作。我在它显示“无法将表单双精度转换为数字”之前尝试过它。@Sanjaya Double是数字的子类,但是应该没有必要这样做。或者更确切地说,如果这段代码能够工作,那么原始代码应该可以工作。我在它显示“无法将form Double转换为Number”之前尝试过它。@Sanjaya Double是Number的子类