C ++中浮点数的精度(floor(),ceil(),trunc(),round()和setprecision())

阅读 179 收藏 0 点赞 0 评论 0

浮点数的精度是浮点数可以保留小数点后的值的精度。

例如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 0
Nubmer 2 correct upto 1 decimals 234.6
Nubmer 3 correct upto 4 decimals -3.3113
Nubmer 4 correct upto 3 decimals -0.913
评论列表


问题


面经


文章

微信
公众号

扫码关注公众号