gpt4 book ai didi

java-me - J2ME-如何在不使用10表示倍数的情况下将double转换为字符串(E-05)

转载 作者:行者123 更新时间:2023-12-04 13:44:02 24 4
gpt4 key购买 nike

我有双重值(value)。我想将其存储在不带E表示法的String中(在J2ME中)

例子

双值6.887578324E9
想要显示为6887578342

最佳答案

您可以创建自己的方法来做到这一点,或使用一些已经存在的库。
例如,Javolution为您提供了类和方法
TypeFormat.format( double d,整数, bool 科学, bool showZero,附加a)
检查Javolution,它具有许多不错的实用程序,但是如果您唯一需要的是格式化数字,则只需编写自己的方法即可。
这是大量的快速技巧

    private static String nosci(double d) {
if(d < 0){
return "-" + nosci(-d);
}
String javaString = String.valueOf(d);
int indexOfE =javaString.indexOf("E");
if(indexOfE == -1){
return javaString;
}
StringBuffer sb = new StringBuffer();
if(d > 1){//big number
int exp = Integer.parseInt(javaString.substring(indexOfE + 1));
String sciDecimal = javaString.substring(2, indexOfE);
int sciDecimalLength = sciDecimal.length();
if(exp == sciDecimalLength){
sb.append(javaString.charAt(0));
sb.append(sciDecimal);
}else if(exp > sciDecimalLength){
sb.append(javaString.charAt(0));
sb.append(sciDecimal);
for(int i = 0; i < exp - sciDecimalLength; i++){
sb.append('0');
}
}else if(exp < sciDecimalLength){
sb.append(javaString.charAt(0));
sb.append(sciDecimal.substring(0, exp));
sb.append('.');
for(int i = exp; i < sciDecimalLength ; i++){
sb.append(sciDecimal.charAt(i));
}
}
return sb.toString();
}else{
//for little numbers use the default or you will
//loose accuracy
return javaString;
}


}

关于java-me - J2ME-如何在不使用10表示倍数的情况下将double转换为字符串(E-05),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5287716/

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