C++ C++;:0.3而不是0.2999999

C++ C++;:0.3而不是0.2999999,c++,C++,我需要使用值0.3。 我用浮球来做这个。 现在,当我在VS2010中移动这个变量的鼠标时,它告诉我0.299999,而不是0.3 但我真的需要0.3 有人能告诉我怎么做吗? 谢谢。这取决于你想做什么。如果您试图在值为0.3的情况下执行某些操作,则可以尝试If(x>0.29&&x

我需要使用值0.3。 我用浮球来做这个。 现在,当我在VS2010中移动这个变量的鼠标时,它告诉我0.299999,而不是0.3

但我真的需要0.3

有人能告诉我怎么做吗?
谢谢。

这取决于你想做什么。如果您试图在值为0.3的情况下执行某些操作,则可以尝试
If(x>0.29&&x<0.31)
,尽管这并不完全准确。但除此之外,第一条评论是正确的,没有办法准确地得到值

我会在发帖前发表评论,检查正在做什么,但我缺乏这样做的声誉。如果这被证明是不准确的,我会很高兴地删除这个答案,所以请不要太快否决


编辑:您也可以尝试将数字存储为10倍大,然后比较3,但我不建议这样做。请详细说明为什么需要这样做

不能,0.3在基数2中没有精确的表示形式。请参见,但在VB6中,我确实可以为变量赋值0.3。我需要在C++中产生精确的结果。如果确实需要0.3,则需要使用与浮点类型不同的表示形式@MarkRansom LOL oops,我没有看到你发布链接tharr;)+1.这是一个很好的答案,因为您推断了用户面临的问题,并就如何解决该问题提出了很好的建议。是的,一般来说,在回答之前在评论中询问用例是合适的,但我觉得这是合适的……但是你的编辑是一个更糟糕的主意。@djechlin非常感谢你的支持,我现在有足够的声誉在将来发表评论examples@djechlin只是添加了一些东西,表明第二个建议是个坏主意。谢谢你指出这一点,那么,你有什么建议吗?