例如,我有 12.12 浮點值我希望它變成 1212 一個整數值如果我有 156.2345,我希望它是 1562345。我搜索了很多,但只發現四舍五入和轉換為 int 但沒有回答我的問題。此外,如果我們有 12.12000 那么我也應該只得到 1212 而不是 1212000。問題是我將從 stdinput 讀取 double 或 float ,我必須按照上述規則將其轉換為適當的 int嘗試過 Float.intValue()其他方法,但僅提供 12 個
3 回答

蝴蝶不菲
TA貢獻1810條經驗 獲得超4個贊
使用以下:
floatValue.toString().replaceAll("[0]*$", "").replace(".", "");
第一次替換將從浮點值中刪除所有尾隨 0,而第二次替換將刪除dot
.

三國紛爭
TA貢獻1804條經驗 獲得超7個贊
我不確定這樣做是否是個好主意,但你可以這樣做
double d = 12.12;
long n = Long.parseLong(BigDecimal.valueOf(d).toString().replaceAll("[.,]", ""));
這將刪除任何小數位。您可以使用floatandint代替。
如果你想1.0成為1代替10,并且10.0是1代替10或者100可以添加
.replaceAll("[0]*$", "")
嘗試過 Float.intValue() 等,但這僅給出 12
正如它應該。intValue以int向下舍入的形式返回值。

萬千封印
TA貢獻1891條經驗 獲得超3個贊
這是將數字乘以 10 直到余數除以 1 產生 0 的另一種方法:
static long toLong(double d) {
if (d % 1 != 0) {
return toLong(d * 10);
}
return (long) d;
}
添加回答
舉報
0/150
提交
取消