[英]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.