c++ - 为什么是 static_cast无法将变量转换为 int
问题描述
我有以下代码,我试图将变量转换为整数,但从倒数第二个打印中可以看出,该类型仍被视为“d” - 有谁知道如何将其更改为 i,因此有它的行为就好像它最初被初始化为auto a = 2
?
#include <iostream>
#include <stack>
#include <string>
#include <cmath>
using namespace std;
int main()
{
auto a = 2.3;
cout << typeid(a).name() << endl;
a = static_cast<int>(a);
cout << typeid(a).name() << endl;
cout << a << endl;
return 0;
}
解决方案
C++ 是一种静态类型语言。变量的类型在运行时不会改变。如果变量的类型是double
,那么它永远不会变成其他任何东西。
例如,您可以使用另一个变量:
int b = a;
推荐阅读
- python - 是否可以为 Django 中的每个表单域添加/删除 HTML 属性
- php - 我需要按字面上的日期过滤 Laravel
- python - Pygame加载缓慢
- c - C 中的多线程 - 线程函数逻辑是否会导致停止主线程执行?
- c++ - 我可以重新定位 chrono 类以使用微控制器作为刻度生成器吗?
- sql - 简单的红移选择查询在 15 分钟后超时
- python-3.x - 从 Locust 测试结果生成 html
- c# - 是否可以在 web api 路由中使用 .json?
- flutter - Flutter RSS Feed XML 请求问题
- javascript - 如何从 JSON 中获取属性的路径