有可能有一个返回整数或浮点的函数吗?如果可能的话,我想把这两个函数合二为一:
private static Integer parseStringFormatInt(String val){
System.out.println(Integer.parseInt(val.substring(0, val.indexOf("."))));
return Integer.parseInt(val.substring(0, val.indexOf(".")));
}
private static Float parseStringFormatFloat(String val){
System.out.println(Float.parseFloat(val.substring(0, val.indexOf("."))));
return Float.parseFloat(val.substring(0, val.indexOf(".")));
}
您可以返回Number
:
private static Number parseStringFormatNumber(String val){
try {
return Integer.valueOf(val.substring(0, val.indexOf(".")));
} catch (NumberFormatException e) {
try {
return Float.valueOf(val.substring(0, val.indexOf(".")));
} catch (NumberFormatException e2) {
// handle invalid value (throw exception, return 0?)
}
}
}
您可以使用Number作为返回类型,也可以将该方法设置为泛型
static <T extends Number> T parseString(String str, Class<T> cls) {
if (cls == Float.class) {
return (T) Float.valueOf(str);
} else if (cls == Integer.class) {
return (T) Integer.valueOf(str);
}
throw new IllegalArgumentException();
}
将返回类型设置为Number
,因为Float
和Integer
都是Number
的子类型,如下所示
private static Number parseStringFormatNumber(String val){
//Based on your conditions return either Float or Integer values
}
您还可以使用instanceof
操作符对返回值进行测试,以获得返回值的确切类型。i、 eFloat
或Integer
if(returnedValue instanceof Float)
{
// type cast the returned Float value and make use of it
}
else if(returnedValue instanceof Integer)
{
// type cast the returned Integer value and make use of it
}
问题内容: 如果结果为小数,如何打印浮点数;如果结果没有小数,如何打印整数? 示例结果 问题答案: 您可以尝试使用简单的Python字符串格式化方法: 如果满足以下条件,将为您提供以下输出: 或此输出,如果:
问题内容: 因此,如果我有一个范围为‘0-1024’的数字,并且希望将其取为‘0-255’,那么数学将决定将输入除以输入的最大值(在这种情况下为1024),从而得出我的数字介于0.0-1.0之间。然后将其乘以目标范围(255)。 我要做什么! 但是由于Java中的某些原因(使用处理),它将始终返回值0。 该代码将像这样简单 但是我只得到0.0。我已经尝试过两次和诠释。一切都无济于事。为什么!? 问
我想编写一个函数模板,它返回各种类型的随机变量(bool、char、short、int、float、double,以及这些变量的无符号版本)。 我看不出如何使用最新的C 11标准库来实现这一点,因为我需要使用统一的int分布或统一的real分布。我想我可以专门化模板: 在Visual Studio 2012 Update 3下,这给出了: 错误C2668:“‘匿名命名空间’::randomPrim
我为我的某个项目写了一段代码,其中我添加了几个数字。在这个过程中,我从数组中添加整数和浮点数。直到数组的最后一个元素,总和有适当的小数位数。但是在最后一个元素,总和突然给了我很多小数位。与前一个总和相加的数字和总和本身的小数位数少于3位,但最终总和的小数位数超过3位。这是代码。它在JS。 这是结果 如你所见235.41和100的总和335.4099999...我知道我可以用固定函数来完成它。然而,
我的问题是,是否有一种方法可以在不通过堆栈的情况下完成所有这些操作。x86_64是否有将xmm0的内容复制到eax或其他通用寄存器的内插? 编辑:问题本身在讨论过程中发生了变化。最后有两个备注,在这两个备注中,我都引用了Intel C++复杂参考的相应部分。 > 可以使用intrinsics在通用Regiter和XMM寄存器之间移动数据(“Steaming SIMD Extensions->流式S
问题内容: 如何在不使用舍入的情况下将Java中的 float 原语减少到 两位小数 ? 仅舍入小数点后两位不应该四舍五入。 第二点是如何 验证 或计算点后的小数位数?: 更新 数字是字符串输入,因此我认为我会按照建议进行操作;并且我将只有int try / catch块用于任何异常。欢迎提供任何建议以更智能的方式进行这项工作: 问题答案: 首先,不能保证仅因为浮点数可以精确表示,所以可以保证它可