C ++ - 用于减去小数的双类型替代方法?

时间:2013-12-06 07:43:17

标签: c++

我正在编写一个接受双数据类型的函数,比如变量't',如果't'等于0.05,函数会做一些事情。

现在,我的问题是,如果't'是100-99.5,则该功能无法正常工作。但它适用于't'= 0.05-0。我猜这与数字的存储方式有关。有什么作用?

PS:我不是程序员,仅仅使用C ++作为工具,所以除了基础知识之外,我对它并不了解。一个简单的解决方案将非常感激。

1 个答案:

答案 0 :(得分:1)

在c ++或任何语言中= = operator不建议用于double类型或float类型,因为变量存储的值大致不是精确值而非常轻微的错误。假设您使用双变量t来比较等于0.05,您可以使用以下代码:

if( t-0.00000000001<=0.05 && t+0.00000000001>=0.05 )

在这种情况下它会正常工作