c语言float数据类型相关问题

程序及运行结果如图

图片说明

图片说明

这里 a 变量由于定义为 float 故截断了一部分,b, c 变量分别表示a的整数与小数部分,由于 float 型有6位有效数字,故 c 向后延伸了一部分,应该加入怎样的代码使其不向后延伸?就是我希望 将 c 的值就固定为0.3457,因为后面还要用到这个 c 来计算其他变量

2个回答

用round函数

#include <iostream>
#include <math.h>
using namespace std;

int main()
{
    float c = 0.123456789;
    c = c * 100 - 12;
    cout << round(c * 10000) / 10000.0 << endl;
    return 0;
}

0.3457

float只是打印出来看是6位,其实不是,如果想要保留后面四位可以先乘上10000,用整数计算,然后再除回去。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问