gpt4 book ai didi

C++控制台应用程序,atof

转载 作者:太空宇宙 更新时间:2023-11-04 15:24:48 25 4
gpt4 key购买 nike

我的问题如下。我尝试将字符串转换为 double 。这样:

string str = "1.1";
double d = atof(str.c_str());

但这不起作用,它只是返回 1;

但如果我尝试:

string str = "1,1";
double d = atof(str.c_str());

它返回 1.1。

这真的很奇怪。似乎只有当我写一个“,”但返回一个“.”时它才能理解这个数字。

知道如何解决此问题以也转换“1.1”吗?

最佳答案

该函数是区域设置感知的,因此它将根据您当前的区域设置解析数字。

由于 atof 是 C 库的一部分,您必须使用 C 库来更改设置。查看clocale .

另请参阅 C++ locale ,如果您使用 C++ 功能 (string, istringstream) 来解析数据,则应该使用它。你可以imbue流的语言环境,这样您就不会像 C 的情况那样修改全局语言环境。

关于C++控制台应用程序,atof,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11155349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com