Double.parseDouble()在C++中等价

Double.parseDouble() equivalent in C++?

本文关键字:C++ parseDouble Double      更新时间:2023-10-16

可能的重复:
std::string浮动或双重

我正在写一个计算器(学习C++),刚刚决定制作一个计算器,因为这是我学习Java时做的第一件事。

该程序执行以下操作:

  1. 向用户询问第一个号码
  2. 询问用户想对数字(-、+、*、/)做什么
  3. 询问第二个号码
  4. 显示结果

在Java中从用户那里获取数字时,我使用Double.parseDouble(数字)来检查他们输入的是否是数字。

C++中有类似的命令吗?我一直在做研究,似乎你必须使用一些技巧,比如将其与ASCII等价物进行比较等。基本上,一项简单的任务需要大量的代码。。。所以在我走那条路之前,我想在这里停一下,看看是否有什么电话可以打,检查输入的是不是一个数字。我需要它来验证负数、零和正数,以及带小数的数字。。。所有其他内容都应该被拒绝,并且应该再次要求用户输入。

当我在Java中执行此操作时,我使用try/catch语句,如果输入无效,它将返回方法(换句话说,它本身),因此它将循环并再次请求用户输入。

谢谢!

您可以使用strtod。它以一种方便的方式处理下溢和超出范围的值。

此外,正如Joachim Pileborg所指出的,如果您使用符合C++11的编译器,那么标准库中就有std::stod

使用函数double atof(const char*);

示例用法:

const char* = "3.14159";
double pi = atof(myDouble);

使用isdigit函数怎么样。