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 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

以上是 C ++中浮点数的精度(floor(),ceil(),trunc(),round()和setprecision()) 的全部内容, 来源链接: utcz.com/z/343596.html

回到顶部