⑴ java 怎麼把科學記數法轉換成string
public static void main(String[] args) { BigDecimal bd = new BigDecimal("1.03219E+14"); System.out.println(bd.toPlainString()); }
⑵ Java中如何使用科學計數法
java支持輸入數字的時候直接使用科學計數法:
double
d
=
1.213123123123e100;
如果太大了或者小樹點太多了好像會損失精度。
另外如果真的不行就用java.math.BigDecimal,裡面是用字元串處理數據的要多長有多長,就是速度比較慢
⑶ java代碼怎麼把科學計數法轉換為具體數字
首先,需要將科學計數法轉換成一下:
例如:
BigDecimal bd = new BigDecimal("3.40256010353E11");
然後轉換成字元串:
String str = bd.toPlainString();
如果這個數字的長度是在int的范圍內的話,是可以轉換成int類型:
int a = Integer.parsInt(str);
如果這個數字的長度不是在Int范圍內的話,得到的就不是你想要的數字了!
⑷ java科學記數法如何轉化成普通記數法
可以藉助java.text.DecimalFormat類,先將科學記數法轉為指定的格式的字元串,再轉為需要的普通計數法。代碼可以參考:
doublea=1.1234546789E6;
java.text.DecimalFormatdf=newjava.text.DecimalFormat("00.00");//""00.00"小數點後面的0的個數表示小數點的個數
Stringb=df.format(a);
⑸ JAVA 關於科學計數法的解決
import java.util.Arrays;
class Animal
{
static String str = "3.4E-5";
static double 轉換後的數 = 0;
public static void main(String[] args)
{
Animal animal = new Animal();
轉換後的數 = animal.conversion(str);
double[] buf = {2,0.1234,轉換後的數,0.1234,0.1234};
String[] ss = new String[buf.length];
Arrays.sort(buf);//從小到大排列
for(int i = 0; i < buf.length;i++)
{
if(buf[i] == 轉換後的數)//如果是原來的科學計數,將原來的str存至ss數組
{
ss[i] = str;
}
else
ss[i] = buf[i] + "";
}//列印出排列後的結果
System.out.print("比較後:" );
for(String s : ss)
System.out.print(s + " "); }
//將科學計數轉換成正常數字
public double conversion(String str)
{
String[] s = str.split("E-");
double num1 = Double.parseDouble(s[0]);
double num2 = Double .parseDouble(s[1]);
return num1 * Math.pow(10d, num2);
}
} 運行結果:比較後:0.1234 0.1234 0.1234 2.0 3.4E-5
⑹ 如何實現將java中Double類型的科學計數法轉換為指定格式顯示
DecimalFormatdf=newDecimalFormat("##0.#####E0");
System.out.println(df.format(6.36000));
用格式轉化的這個類,查一下api里有更詳細的介紹,查一下吧
⑺ java中數值類型轉換的問題,double類型顯示科學計數法了。
在顯示時候調用的是Double類的toString()方法。原因如下:
那麼decExponent屬性究竟是什麼呢?簡單來說,
就是小數點向左移動decExponent就是正數,向右移動就是負數。移動幾位就是幾。
而具體移動規則是移動到小數點左邊為0,右邊為非0時候停止。