我在我的应用程序下面的代码,其中我需要解析字符串并将其转换为加倍的Qt的QString :: toDouble()产生不精确结果
int i = ((QString)"294.4").toDouble() * 100;
我应该看到价值29440作为我的价值。然而,每次我这样做时,我都会得到29439的价值。我不确定它为什么会发生,因为它不会总是发生。例如294.1,294.2,294.3正常工作。 294.5也可以正常工作。
我明白,解释浮点数应该是一个问题,并且可以预期不确定的行为,但这个似乎是一个非常简单的例子。
有人可以请指导我如何可靠地解析值,以便它始终给我由它的字符串等效代表的确切值?
我明白了。这里的主要问题是,提供价值的是用户。在这种情况下,我不能要求用户输入整数的东西的货币和价格。我正在寻找的只是一种可靠地解析价值的方法。一旦解析完美,它对我来说工作得很好。 –
我也明白,这不是Qt的问题,而是一个普遍的问题。 –
你得到的值是一个字符串? –