c++ - 为什么字符串到 float 的转换可能不起作用?

标签 c++ string floating-point

<分区>

Possible Duplicate:
Precision of Floating Point
Can you compare floating point values exactly to zero?
floating point issue

在我的 C++ 代码中,我有字符串:“0.55”。

我想将它转换为浮点值“0.55”,但我使用的所有函数都给我浮点值“0.55000001”。

为什么?如何取清值?

最新版本的代码是:

wstring s = L"0.55";
float f = stof(s);

最佳答案

float 不准确。这是因为有无限多的可能值,但只有有限数量的位来表示它们!

因为 0.55 无法表示,所以它会为您提供值 0.55000001

可以在以下位置找到更多信息:what every programmer should know about floating points arithmetics

关于c++ - 为什么字符串到 float 的转换可能不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7875551/

相关文章:

c++ - 将 nvcc 与 CUDA 6 和 VS 2012 Express 结合使用

c++ - 通过 C#/.NET 代码编写可使用的非托管 DLL

C++套接字二进制文件

ruby - 使用变量构造格式字符串

c++ - 在不同机器之间使用 float / double 时我应该知道什么?

c++ - boost::函数赋值给成员函数

python - 在python中划分一个字符串

c# - 无法将土耳其语字符从文本文件读取到字符串数组

c - %g printf 说明符到底是什么意思?

.net - 如何在 Windows 注册表中存储 double 型(64 位浮点型)或浮点型?