我有一个计算器应用程序。将Double转换为Int
如何实现以下目标?
如果小数点后面有非零数字,则应保持为double。
如果小数点后面没有非零数字,则应将其转换为等于double的整数。
例如,10.0003应显示为10.0003。 10.0应显示为10.
当前我将所有结果显示为Double(10.0)。如何检查小数点后是否有非零数字?我们有一个简单的解决方案吗?
我有一个计算器应用程序。将Double转换为Int
如何实现以下目标?
如果小数点后面有非零数字,则应保持为double。
如果小数点后面没有非零数字,则应将其转换为等于double的整数。
例如,10.0003应显示为10.0003。 10.0应显示为10.
当前我将所有结果显示为Double(10.0)。如何检查小数点后是否有非零数字?我们有一个简单的解决方案吗?
x is a double
y = round(x)
if (x - y == 0)
{
// x has no non-zero decimal
}
else
{
// x has non-zero decimal
}
floating point
号码没有代表正好和准确在机器中。他们不是固定点。所以10.0
可能实际上是9.99999988451
或类似的东西。或者,10.0003实际上可能是10.0000228993
- 因此编写满足此条件的逻辑非常困难。
请阅读What every computer scientist must know about floating point numbers
谢谢......我认为这会为我工作。将在最短时间限制后接受您的回答。 –