---
title: PromoteType
description: "不同数据类型参数进行运算时，推导应该将类型提升到何种数据类型进行计算。例如float16与float32进行运算，应该将float16先提升至float32后再做运算。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/aolapi/atlasascendc_api_07_1160.html
sourcePath: /source/zh/canncommercial/900/API/aolapi/atlasascendc_api_07_1160.html
indexId: 10761b58f5f480f4302ffb254f494f4608734ec0abb47afd0fab9ebc36986d1e70
---
# PromoteType

#### 功能说明

不同数据类型参数进行运算时，推导应该将类型提升到何种数据类型进行计算。例如float16与float32进行运算，应该将float16先提升至float32后再做运算。


#### 函数原型

```
DataType PromoteType(const DataType type_a, const DataType type_b)
```


#### 参数说明

| 参数 | 输入/输出 | 说明 |
| --- | --- | --- |
| type\_a | 输入 | 第一个参数数据类型。 |
| type\_b | 输入 | 第二个参数数据类型。 |


#### 返回值说明

若无法推导类型提升后的数据类型，运算会失败并返回DT_UNDEFINED。


#### 约束说明

无


#### 调用示例

```
// 判断dtype是否可以与Float32计算，不能则返回
void Func(const DataType dtype) {
    if (PromoteType(dtype, DT_FLOAT) == DT_UNDEFINED) {
        return;
    }
}
```
