0
A
回答
1
你必須操縱繩子,讓您提取負號第一:
String number = "20.00-";
boolean negative = false;
if(number.substring(number.length() - 1).equals("-")) {
number = number.substring(0, number.length() - 1);
negative = true;
}
double parsedNumber = Double.parseDouble(number);
if(negative) {
parsedNumber *= -1;
}
0
這可以在許多ways-
1.above過程來實現,也證明3
2.
String s =「200.0-」;
String[] str = s.split("-");
double data=Double.parseDouble(str[0]);
data*=-1;
1
我看到這兩個東西。
- 字符串操作將必須做
- 保留數量的精確度,如果你數爲0.00000一樣,你希望將所有的零。
如此說來,試試這個:
public static void main(String[] args) throws Exception {
String data = "20.123456-";
// Determine if positive or negative
boolean negative = data.charAt(data.length() - 1) == '-';
double dblData = negative
? Double.parseDouble(data.substring(0, data.length() - 1)) * -1
: Double.parseDouble(data);
// Determine precision
long precision = 0;
if (data.contains(".")) {
String decimalPart = data.split("\\.")[1];
// 0x30 and 0x39 are the hex values for characters 0 - 9
precision = decimalPart.chars().filter(c -> 0x30 <= c && c <= 0x39).count();
}
NumberFormat nf = new DecimalFormat();
nf.setMinimumFractionDigits((int)precision);
// Display results
System.out.println(nf.format(dblData));
}
結果:
-20.123456
你必須在這裏做一些字符串manipuation,你真的沒有選擇.. 。此外,即使這裏的點會有問題(如果這是一個浮點數,小數點分隔符根據您的區域設置而變化)。 – fge
@Jafar Ali,他們可以根據標準進行編碼,那麼爲什麼你不得不使用一些通用的可用API來處理這個問題。 –
該團隊正在使用某種工具進行開發,他們正在遵循該工具標準。 –