C ++中浮点数的精度(floor(),ceil(),trunc(),round()和setprecision())
浮点数的精度是浮点数可以保留小数点后的值的精度。
例如10/6 = 1.6666666…这些具有重复的小数,这些小数可以占用无限的存储空间。
因此,在这种情况下,为避免内存溢出,编译器对数字设置了精度限制。对于C ++中的float值,此精度设置为6-7位,如果小数重复出现,它将丢弃该值。
因此,为了避免这种丢弃发生时的任何重大损失,有一些支持精度为float值的方法和库。在这里,我们将讨论它们,
地板()
floor()函数是向下舍入函数,可将数字四舍五入到小于该数字的最接近整数值。
它总是返回一个小于浮点数的整数部分的整数值。
库:math.h
示例
#include<iostream>#include<math.h>
using namespace std;
int main() {
float number1 = 0.435 , number2 = 234.2342, number3 = -3.31132, number4 = -0.432;
cout<<"Values are : \n";
cout<<"Number 1 : "<<floor(number1)<<endl;
cout<<"Number 2 : "<<floor(number2)<<endl;
cout<<"Number 3 : "<<floor(number3)<<endl;
cout<<"Number 4 : "<<floor(number4)<<endl;
return 0;
}
输出结果
Values are :Number 1 : 0
Number 2 : 234
Number 3 : -4
Number 4 : -1
ceil()
ceil()函数是舍入函数,它将数字舍入为大于该数字的最接近的整数值。
它总是返回一个整数,该整数比浮点数的整数部分大一。
库:math.h
示例
#include<iostream>#include<math.h>
using namespace std;
int main() {
float number1 = 0.435 , number2 = 234.2342, number3 = -3.31132, number4 = -0.432;
cout<<"Values are : \n";
cout<<"Number 1 : "<<ceil(number1)<<endl;
cout<<"Number 2 : "<<ceil(number2)<<endl;
cout<<"Number 3 : "<<ceil(number3)<<endl;
cout<<"Number 4 : "<<ceil(number4)<<endl;
return 0;
}
输出结果
Values are :Number 1 : 1
Number 2 : 235
Number 3 : -3
Number 4 : -0
回合()
round()函数是舍入函数,可将数字舍入为最接近的整数值,该整数值可以大于或小于该数字。
它总是返回一个整数值,该整数值可以比浮点数的整数部分大/小。
库:math.h
示例
#include<iostream>#include<math.h>
using namespace std;
int main() {
float number1 = 0.435 , number2 = 234.5612, number3 = -3.31132, number4 = -0.9132;
cout<<"Values are : \n";
cout<<"Number 1 : "<<ceil(number1)<<endl;
cout<<"Number 2 : "<<ceil(number2)<<endl;
cout<<"Number 3 : "<<ceil(number3)<<endl;
cout<<"Number 4 : "<<ceil(number4)<<endl;
return 0;
}
输出结果
Values are :Number 1 : 1
Number 2 : 235
Number 3 : -3
Number 4 : -0
setprecision()
该setprecision()
函数返回flaot的值,该值是正确的,最多n个小数位。N是传递给setprecission函数的参数。
对于功能,它使用固定的。
图书馆: iomanip
示例
#include<iostream>#include<iomanip>
using namespace std;
int main() {
float number1 = 0.435 , number2 = 234.5612, number3 = -3.31132, number4 = -0.9132;
cout<<"Nubmer 1 correct upto 0 decimals "<<fixed<<setprecision(0)<<number1<<endl;
cout<<"Nubmer 2 correct upto 1 decimals "<<fixed<<setprecision(1)<<number2<<endl;
cout<<"Nubmer 3 correct upto 4 decimals "<<fixed<<setprecision(4)<<number3<<endl;
cout<<"Nubmer 4 correct upto 3 decimals "<<fixed<<setprecision(3)<<number4<<endl;
}
输出结果
Nubmer 1 correct upto 0 decimals 0Nubmer 2 correct upto 1 decimals 234.6
Nubmer 3 correct upto 4 decimals -3.3113
Nubmer 4 correct upto 3 decimals -0.913
以上是 C ++中浮点数的精度(floor(),ceil(),trunc(),round()和setprecision()) 的全部内容, 来源链接: utcz.com/z/343596.html