是否可以将浮点值更改为String?如果可能的话,是否也可以将数字转换为字符串,同时将数字四舍五入为最接近的整数?
例如,如果我有一个2.335之类的浮点数,那么我可以将其更改为值为“2.335”或“2”的字符串(通过舍入)吗?
答案 0 :(得分:2)
使用java Float
类:
String s = Float.toString(25.0f);
如果要向下舍入数字,只需使用Math.floor()
函数。
float f = 2.9999f;
String s = Float.toString(Math.floor(f));//rounds the number to 2 and converts to String
第一行将数字向下舍入为最接近的整数,第二行将其转换为字符串。
另一种方法是使用String.valueOf(floatNumber);
float amount=100.00f;
String strAmount=String.valueOf(amount);
答案 1 :(得分:1)
要执行此操作,您只需执行
即可float example = 2.335
String s = String.valueOf(Math.round(example));
答案 2 :(得分:0)
将float转换为String:
String s = Float.toString(2.335f);
舍入可以通过
完成String.format("%.5g%n", 0.912385);
返回0.91239
有关更详细的答案,请参阅Round a number in Java
答案 3 :(得分:-1)
您的第一个要求可以使用template <class T>
struct isSupported
: public isSupportedSimpleObject<T> {}; //is_object turned out to be a wrong thing
template <template<class> class T, class U>
struct isSupported < T<U> >
: public __and_ < isSupportedContainer<T<U>>,
isSupported <U> > {};
String.valueOf
对于结算,您可以使用float f = 1.6f;
String str = String.valueOf(f);
而不是 Math.round
。由于Math.floor
会将1.6转换为1.0而不是2.0,而Math.floor
会将您的数字舍入为最接近的整数。