亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將浮點數轉換為 int 及其考慮的小數?

如何將浮點數轉換為 int 及其考慮的小數?

Cats萌萌 2021-10-28 17:28:57
例如,我有 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.


查看完整回答
反對 回復 2021-10-28
?
三國紛爭

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向下舍入的形式返回值。


查看完整回答
反對 回復 2021-10-28
?
萬千封印

TA貢獻1891條經驗 獲得超3個贊

這是將數字乘以 10 直到余數除以 1 產生 0 的另一種方法:


static long toLong(double d) {

    if (d % 1 != 0) {

        return toLong(d * 10);

    }


    return (long) d;

}


查看完整回答
反對 回復 2021-10-28
  • 3 回答
  • 0 關注
  • 309 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號