如何完美获得一个double值的整数部分

如题所述

使用强制类型转换,强制舍去小数部分。例如double a=3.14; int b= (int)a;使用math.h的标准函数。double floor(double x),double ceil(double x),使用floor函数。floor(x)返回的是小于或等于x的最大整数。

浮点运算就是实数运算,因为计算机只能存储整数,所以实数都是约数,这样浮点运算是很慢的而且会有误差。大多数机器都是32位的,也就是说32位都用来表示整数的话,那么对于无符号整数就是0 到 2^32-1,对于有符号的话就是-2^31 到 2^31-1。



相关信息

当我们用不同的电脑计算圆周率时,会发现一台电脑的计算较另一台来讲结果更加精确。或者我们在进行枪战游戏的时候,当一粒子弹击中墙壁时,墙上剥落下一块墙皮,同样的场面在一台电脑上的表现可能会非常的呆板、做作;而在另外一台电脑上就会非常生动形象。

甚至与我们在现实中看到的所差无几。这都是浮点运算能力的差异导致的。如果是实数的话,就不是这样了,机器有两种办法表示实数,一种是定点,就是小数点位置是固定的,一种是浮点,就是小数点位置不固定,计算方法也比较麻烦,通常会比整数运算代价大很多。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-07-26
如果是java
有float类型的
向上取整:Math.ceil() //只要有小数都+1
向下取整:Math.floor() //不取小数
四舍五入:Math.round() //四舍五入

如果是C++:
方法一:使用强制类型转换,强制舍去小数部分。
例如 double a=3.14; int b= (int)a;
方法二:使用math.h的标准函数。
double floor(double x);double ceil(double x);
使用floor函数。floor(x)返回的是小于或等于x的最大整数。
如: floor(10.5) == 10 floor(-10.5) == -11使用ceil函数。ceil(x)返回的是大于x的最小整数。如: ceil(10.5) == 11 ceil(-10.5) ==-10本回答被提问者采纳
第2个回答  2017-07-26
花木兰概率是多少