c++中的float转int存在误差的解决方法

当一个float数转转成int型数据时,有时会存在1误差,如图:

    float a = 10000;
    float b = 0.01;
    int c = a * b;
    qDebug()<< c;//结果为99

解决方法:通过一个float型的中间变量存储计算结果,再转换成int

    float a = 10000;
    float b = 0.01;
    float temp = a * b;
    int c = temp;
    qDebug()<< c;//结果为100

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要将一个 `int` 类型的变量换为 `float` 类型,可以使用类型换操作符,例如: ```c++ int x = 123; float y = (float)x; ``` 或者使用 C++ 的 `static_cast` 运算符,如下所示: ```c++ int x = 123; float y = static_cast<float>(x); ``` 这两种方法都可以将 `x` 的整数值换为浮点数值并存储在 `y` 。 ### 回答2: 在C++语言,将int类型换为float类型可以使用静态类型换或强制类型换。 静态类型换可以使用C++的`static_cast<>()`函数实现。对于int类型换为float类型,可以使用以下代码示例: ```cpp int mbed_int = 10; float mbed_float = static_cast<float>(mbed_int); ``` 强制类型换可以使用C语言风格的类型换运算符进行换。对于int类型换为float类型,可以使用以下代码示例: ```cpp int mbed_int = 10; float mbed_float = (float)mbed_int; ``` 以上两种方法都可以将mbed_int的值换为float类型并存储在mbed_float变量。这样,mbed_int的整数值将被换为浮点数值,并可以进行浮点数计算或其他浮点数操作。需要注意的是,由于float类型具有较小的精度,可能会发生浮点数舍入误差。 ### 回答3: mbed int 换为 float:在ARM mbed开发板intfloat 是两种不同的数据类型,表示整数和浮点数。要将一个mbed int 换为 float,可以使用类型换操作符或者使用内置函数。 使用类型换操作符可以将一个整数类型换为浮点数类型。例如,将一个mbed int 变量x 换为float 变量y,可以使用下面的代码: ```cpp int x = 5; float y = (float)x; ``` 在这个例子,整数变量x 的值为5,将它换为float 类型并赋给变量y。通过将x 放在括号内并在前面加上float 类型,就可以实现从int 换到float。 另一种方式是使用内置函数来进行换。mbed 提供了一些内置函数用于进行数据类型之间的换。使用`float()` 函数可以将一个整数换为浮点数。例如,将一个mbed int 变量x 换为float 变量y,可以使用下面的代码: ```cpp int x = 5; float y = float(x); ``` 在这个例子,整数变量x 的值为5,使用`float()` 函数将它换为float 类型并赋给变量y。 无论是使用类型换操作符还是内置函数,都可以将mbed int 换为float,以便进行浮点数运算或者其他需要浮点数的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值