簡體   English   中英

簡單干凈的Java float到字符串轉換

[英]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/10Integer.MIN_VALUE/10之間的浮點值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM