将Double转换为Int

时间:2013-03-31 03:38:24

标签: android

我有一个计算器应用程序。

如何实现以下目标?

  1. 如果小数点后面有非零数字,那么它应保持为双倍。

  2. 如果小数点后面没有非零数字,则应将其转换为等于double的整数。

    例如,10.0003应显示为10.0003。 10.0应显示为10.

  3. 目前我将所有结果显示为Double(10.0)。如何检查小数点后是否有非零数字?我们有一个简单的解决方案吗?

2 个答案:

答案 0 :(得分:1)

floating point数字未在机器中完全准确表示。它们不是固定点。因此10.0可能实际上是9.99999988451或类似的东西。或者,10.0003实际上可能是10.0000228993 - 因此编写满足此要求的逻辑非常困难。

请阅读What every computer scientist must know about floating point numbers

答案 1 :(得分:0)

x is a double  
y = round(x)  
if (x - y == 0) 
{
   // x has no non-zero decimal
}
else
{
   // x has non-zero decimal
}