我想在没有指数形式的Java中打印double值.
double dexp = 12345678;
System.out.println("dexp: "+dexp);
Run Code Online (Sandbox Code Playgroud)
它显示了这个E符号:1.2345678E7.
我希望它像这样打印: 12345678
防止这种情况的最佳方法是什么?
我有一个双值,我必须在我的UI上显示.现在条件是double = 0的十进制值,例如. - 14.0在这种情况下,我必须在我的UI上只显示14.此外,字符的最大限制为5.
例如,12.34整数值不能大于2位,因此是double的十进制值.
这可能是最好的方法吗?
可能重复:
如何确定十进制/双精度是否为整数?
我有一个double类型的变量,我想检查它是否是一个整数.
目前我有
public bool CheckIfInteger(double number)
{
return number.ToString().Contains(".") == false;
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的办法?
更新:对不起我没有意识到混淆的可能性,整数我的意思是整数的数学定义,即自然数和非零自然数的负数.
从"编程珍珠"一书中解释(关于旧机器上的c语言,因为本书是从90年代后期开始的):
整数算术运算(+,-,*),而可能需要大约10纳秒%操作员最多需要100毫微秒.
/在时间方面它与division()相同吗?我正在编写一个程序,我需要从键盘输入.我需要输入一个数字,但我不确定它是否是一个int或一个double.这是我的代码(针对该特定部分):
import java.io.*;
import java.util.*;
//...
Scanner input = new Scanner(System.in);
int choice = input.nextInt();
Run Code Online (Sandbox Code Playgroud)
我知道我可以得到一个String或做,parseInt()或者parseDouble()我不知道它会是哪一个.
特别是在Java中,如何确定a double是否为整数?为了澄清,我想知道如何确定double实际上不包含任何分数或小数.
我主要关注的是浮点数的性质.我想到的方法(以及我通过Google找到的方法)基本遵循以下格式:
double d = 1.0;
if((int)d == d) {
//do stuff
}
else {
// ...
}
Run Code Online (Sandbox Code Playgroud)
我当然不是浮点数和它们的行为方面的专家,但我的印象是因为double商店只有数字的近似值,if()条件只会进入某些时间(甚至大部分时间) ).但我正在寻找一种方法,无论double价值如何存储在系统中,都能保证100%的时间都能正常工作.
这可能吗?如果是这样,怎么样和为什么?
我需要测试double是否为整数.基本上这是规则的一个例子:
为了做到这一点,我做了一个if (result mod 1) = 0 then,看看它是否返回true或false.考虑到这result是双重的.顺便说一句,编译器给我这个错误:
[dcc32错误] Unit1.pas(121):E2015运算符不适用于此操作数类型
我怎么解决这个问题?请注意,我的数字是这种格式,##.#####所以我对浮点精度没有太多问题.
一般我会使用if (result % 1 == 0) {}但在Delphi中这不起作用.