Java If-Else的条件(小数位数)
有没有一种方法可以根据一个数字的小数位数来执行一段代码。例如,如果double是2.0,我想把它转换成一个整数,但是如果它是2.43426,我想把它保留为double。谢谢 不确定,但会:Java If-Else的条件(小数位数),java,decimal,if-statement,Java,Decimal,If Statement,有没有一种方法可以根据一个数字的小数位数来执行一段代码。例如,如果double是2.0,我想把它转换成一个整数,但是如果它是2.43426,我想把它保留为double。谢谢 不确定,但会: double d = 2.0; if ((long) d == d) { // then } 为你工作?这只会回答您在特定情况下的问题。不确定,但会: double d = 2.0; if ((long) d == d) { // then } 为你工作?这只回答了您在特定情况下的问题
double d = 2.0;
if ((long) d == d) {
// then
}
为你工作?这只会回答您在特定情况下的问题。不确定,但会:
double d = 2.0;
if ((long) d == d) {
// then
}
为你工作?这只回答了您在特定情况下的问题。您可以指定精度并按如下方式进行转换:
double precision = 1e-10;
int rounded = Math.round(x);
if (Math.abs(x-rounded) > precision) System.out.print(x)
else System.out.print(rounded);
可以按如下方式指定精度和转换:
double precision = 1e-10;
int rounded = Math.round(x);
if (Math.abs(x-rounded) > precision) System.out.print(x)
else System.out.print(rounded);
double foo = 2.43426;
int count = String.valueOf(foo).split(".")[1].toCharArray().length;
if(count > 1){
// do stuff
}
快速而肮脏的解决方案如下:
double foo = 2.43426;
int count = String.valueOf(foo).split(".")[1].toCharArray().length;
if(count > 1){
// do stuff
}
如果这是你想要的:
我将把它们转换成字符串并写出它们,所以我希望它是3而不是3.0,但不是3而不是3.4324 “正确”的方法是使用:
但是,它确实本地化了十进制分隔符(我得到的是逗号而不是点)。如果这是一个问题,您只需调用
fmt.setDecimalFormatSymbols(新的DecimalFormatSymbols(Locale.ROOT))
,如果这是您想要的:
我将把它们转换成字符串并写出它们,所以我希望它是3而不是3.0,但不是3而不是3.4324 “正确”的方法是使用:
但是,它确实本地化了十进制分隔符(我得到的是逗号而不是点)。如果这是一个问题,您可以调用
fmt.setDecimalFormatSymbols(新的DecimalFormatSymbols(Locale.ROOT))
您能举个例子说明这是如何有用的吗?(记住Java是一种静态类型语言)我将把它们转换成字符串并写出它们,所以我希望它说3而不是3.0,但不是3而不是3.4324。我可能是用完全错误的方法来做的,哈哈,这只是一个输出格式的问题。你能举个例子说明这是如何有用的吗?(记住Java是一种静态类型语言)我将把它们转换成字符串并写出它们,所以我希望它说3而不是3.0,但不是3而不是3.4324。我可能是用完全错误的方法来做的,哈哈,这只是一个输出格式的问题,我会试试看;这似乎是可行的。如果有,我会接受你的回答!您应该考虑使用<代码>长< />代码>而不是<代码> int >代码>。这似乎是可行的。如果有,我会接受你的回答!您应该考虑使用<代码>长< />代码>而不是<代码> int <代码>。