<分区>
我想了解专业级软件中的类型转换是如何发生的? 考虑以下转换:
- 翻倍
- 双倍整数
- 要加倍的字符串
- 加倍到字符串
目前,我正在为我的项目使用 Qt,它具有用于执行这些任务的 API。 所以我只想知道人们是如何仅使用标准 C++ 执行这些转换的。 准确性、速度和内存力按其各自的顺序排列为优先级。
标签 c++
<分区>
我想了解专业级软件中的类型转换是如何发生的? 考虑以下转换:
目前,我正在为我的项目使用 Qt,它具有用于执行这些任务的 API。 所以我只想知道人们是如何仅使用标准 C++ 执行这些转换的。 准确性、速度和内存力按其各自的顺序排列为优先级。
最佳答案
对于 int 到 double 你可以简单地做 static_cast<double>(int_value);
从 double 到 int 这取决于具体情况,大多数时候 static_cast 都可以,但是,有时您需要对四舍五入为 int 的值进行特定控制。为此,您可以使用类似 floor
的函数, round
, 或 ceil
.
对于 string to anything 和 anything to string 有几个选项:
snprintf()
- 不推荐,除非你知道你在做什么。精度难以控制
stringstream
/istringstream
- 这具有良好的准确性且易于控制
boost::format
- 个人最爱,查看文档:http://www.boost.org/doc/libs/1_53_0/libs/format/doc/format.html
就性能而言,我会选择 snprintf 在某些情况下是最快的,因为它不需要分配。
关于c++ - 在 C++ 中将数据从一种类型转换为另一种类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19678278/