5 回答

TA貢獻1744條經驗 獲得超4個贊
用于將 映射到 :,然后 用于獲取作為 s 的不同部分。然后,(可選)將這些值解析為 s:Double.toString()doubleStringDouble.toString(doub)String.split("\\.")StringInteger.valueOf()Integer
double doub = 543.345671;
// Here, you want to split the String on character '.'
// As String.split() takes a regex, the dot must be escaped.
String[] parts = Double.toString(doub).split("\\.");
System.out.println(Integer.valueOf(parts[0]));
System.out.println(Integer.valueOf(parts[1]));
輸出:
543
345671

TA貢獻1840條經驗 獲得超5個贊
這取決于你想要的小數點后有多少位,但這是要點:
double d = doub - (int)doub; // will give you 0.xyz
int result = d * 1000; // this is for 3 digits, the number of zeros in the multiplier decides the number of digits

TA貢獻1784條經驗 獲得超7個贊
正如我所看到的,
Double d=543.345671;
String line=String.valueOf(d);
String[] n=line.split("\\.");
int num1=Integer.parseInt(n[0]);
int num2=Integer.parseInt(n[1]);

TA貢獻1875條經驗 獲得超3個贊
使用正則表達式拆分獲取它,
double doub = 543.345671;
String data[] = String.valueOf(doub).split("\\.");
System.out.println("Before decimal: " + Integer.parseInt(data[0]) + ", After decimal: " + Integer.parseInt(data[1]));
指紋
Before decimal: 543, After decimal: 345671

TA貢獻2065條經驗 獲得超14個贊
這就是我需要的。謝謝 尼爾·利維但有時可能會出現舍入錯誤。
double doub = 543.04;
int num1 = (int) doub; //543
int num2 = (int) ((doub-num1)*1000000); //39999
我添加了數學.round() 來正確獲取小數部分。
double doub = 543.04;
int num1 = (int) doub; //543
int num2 = (int) Math.round((doub-num1)*1000000); //40000
添加回答
舉報