Double.parseDouble()在C++中等价
Double.parseDouble() equivalent in C++?
可能的重复:
std::string浮动或双重
我正在写一个计算器(学习C++),刚刚决定制作一个计算器,因为这是我学习Java时做的第一件事。
该程序执行以下操作:
- 向用户询问第一个号码
- 询问用户想对数字(-、+、*、/)做什么
- 询问第二个号码
- 显示结果
在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函数怎么样。