应该使用哪个函数将字符串转换为长双精度?
请注意,一般来说,double
与long double
不同。
strtod
将 string 转换为 double
,但是应该使用哪个函数将 string 转换为 long double 呢?
Note that in general, double
is different from long double
.
strtod
converts string to double
, but which function should be use to converting string to long double?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以使用 istream 从字符串中读取 long double 。请参阅此处 http://www.cplusplus.com/reference/iostream/ istream/operator%3E%3E/
如果您喜欢
scanf
系列函数,请使用%Lf
阅读You can use
istream
to read long double from string. See here http://www.cplusplus.com/reference/iostream/istream/operator%3E%3E/If you like
scanf
family of functions, read with%Lf
在 C++03 中,使用
boost::lexical_cast
,或者:在 C99 中,使用
strtold
。在 C89 中,将
sscanf
与%Lg
结合使用。在 C++11 中使用
stold
。每个接受的格式可能存在细微差别,因此请先检查详细信息...
In C++03, use
boost::lexical_cast
, or:In C99, use
strtold
.In C89, use
sscanf
with%Lg
.In C++11 use
stold
.There may be subtle differences as to exactly which formats each one accepts, so check the details first...
您已将问题标记为“C++”,所以我将给您一个 C++ 答案:
为什么不直接使用流?
You've tagged your question as "C++", so I'm going to give you a C++ answer:
Why not just use streams?
在 C++ 中,我只能推荐
boost::lexical_cast
(或者一般通过 IOStreams)。在 c ?不知道。
In c++, I can only recommend
boost::lexical_cast
(or in general via the IOStreams).In c ? no idea.