在C ++中删除小数点后的一些数字

时间:2013-05-22 12:21:21

标签: c++

我需要删除小数点后的数字,但不是全部。

例如,double dig = 3.1459038585我需要将其转换为dig = 3.14

我想我需要多次挖到100然后将其转换为整数然后再次转换为double并删除为100(所有这将是1行)。但有没有更快的功能呢?

2 个答案:

答案 0 :(得分:4)

任何实现此功能的函数都会更灵活,因此定义更慢。所以,是的,请写下这个:

double truncated = (double)((int)dig*100)/100;

所有CPU本地操作都是如此,因此它几乎不会花费任何时钟周期,特别是如果内联或用作宏。

答案 1 :(得分:3)

#include <cmath>
#include <iostream>
int main()
{
    double d = 3.1459038585;
    std::cout << std::floor(d * 100.) / 100. << std::endl; 
}