[英]Simple and clean java float to string conversion
這是一個非常簡單的問題,但我對回答的難度感到驚訝。 甚至文檔也沒有給出明確而直接的答案。
您看,我只是在嘗試將簡單的float轉換為字符串,以使結果僅包含一個十進制數字。 例如:
String myfloatstring = "";
float myfloat = 33.33;
myfloatstring = Float.toString(myfloat);
實際上確實返回“ 33.33”。 很好,不過我正在尋找一種方法來將小數位截斷為“ 33.3”。 每當輸入整數時,它都還必須加上小數點。例如,如果myfloat為10,則它將顯示為“ 10.0”。 奇怪的是,聽起來並不簡單。
您能給我的任何建議將不勝感激。
編輯#1:
目前,我不關心小數點左邊的數字。
System.out.println(String.format("%.1g%n", 0.9425));
System.out.println(String.format("%.1g%n", 0.9525));
System.out.println(String.format( "%.1f", 10.9125));
收益:
0.9
1
10.9
使用第三個例子
愚蠢的回旋處:
float myFloat = 33.33f;
int tenTimesFloat = (int) (myFloat * 10); // 333
String result = (tenTimesFloat / 10) + "." + (tenTimesFloat % 10); // 33.3
請注意,這會截斷數字,因此10.99
將轉換為10.9
。 要進行舍入,請使用Math.round(myFloat * 10)
而不是(int) (myFloat * 10)
。 同樣,這僅適用於介於Integer.MAX_VALUE/10
和Integer.MIN_VALUE/10
之間的浮點值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.