我的问题如下.我尝试将字符串转换为double.通过这种方式:
string str = "1.1";
double d = atof(str.c_str());
Run Code Online (Sandbox Code Playgroud)
但这不起作用,它只返回1;
但如果我尝试:
string str = "1,1";
double d = atof(str.c_str());
Run Code Online (Sandbox Code Playgroud)
它返回1.1.
这真的很奇怪.似乎只有我写一个","它才能理解数字,但返回为".".
任何想法我怎么能解决这个转换"1.1"呢?
该函数可识别语言环境,因此它将根据您当前的语言环境设置解析数字.
由于atof是C库的一部分,您必须使用C库来更改设置.退房clocale.
另请locale参阅C++ ,如果您使用C++功能(string,istringstream)来解析数据,则应该使用它.您可以imbue将语言环境添加到流中,这样就不会像C一样修改全局语言环境.
| 归档时间: |
|
| 查看次数: |
249 次 |
| 最近记录: |