四舍五入

Java中四舍五入

大兔子大兔子 提交于 2019-11-27 06:16:24
1、Math中四舍五入的方法 Math.ceil(double a)向上舍入,将数值向上舍入为最为接近的整数,返回值是double类型 Math.floor(double a)向下舍入,将数值向下舍入为最为接近的整数,返回值是double类型 Math.round(float a)标准舍入,将数值四舍五入为最为接近的整数,返回值是int类型 Math.round(double a)标准舍入,将数值四舍五入为最为接近的整数,返回值是long类型 2、Math中random生成随机数 Math.random()生成大于等于0,小于1的随机数 3、Random类生成随机数 两种构造方式:第一种使用默认的种子(当前时间作为种子),另一个使用long型整数为种子,Random类可以生成布尔型、浮点类型、整数等类型的随机数,还可以指定生成随机数的范围 4、BigDecimal处理小数 两种构造方式:第一种直接value写数字的值,第二种用String import java.math.BigDecimal;import java.util.Random;import java.util.concurrent.ThreadLocalRandom;public class TestNumber { public static void main(String[] args){ /

java.math.BigDecimal记录

那年仲夏 提交于 2019-11-27 03:59:31
1.引言 借用《Effactive Java》这本书中的话,float和double类型的主要设计目标是为了科学计算和工程计算。他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的。然而,它们没有提供完全精确的结果,所以不应该被用于要求精确结果的场合。但是,商业计算往往要求结果精确,这时候BigDecimal就派上大用场啦。 2.BigDecimal简介 BigDecimal 由任意精度的整数非标度值 和32 位的整数标度 (scale) 组成。如果为零或正数,则标度是小数点后的位数。如果为负数,则将该数的非标度值乘以 10 的负scale 次幂。因此,BigDecimal表示的数值是(unscaledValue × 10-scale)。 3.测试代码 3.1构造函数(主要测试参数类型为double和String的两个常用构造函数) BigDecimal aDouble =new BigDecimal(1.22); System.out.println("construct with a double value: " + aDouble); BigDecimal aString = new BigDecimal("1.22"); System.out.println("construct with a String value: " +

zoj3693

那年仲夏 提交于 2019-11-26 19:14:14
ZOJ Problem Set - 3693 周赛的一道题目,刚开始以为是简单题,wa后就觉得是坑在四舍五入上,但最终还是悲剧了。 注意的点是:如果第二位小数后还有不为0的小数,应该+0.01. #include<stdio.h> int main() { int t,n,k; double w,p; while (~scanf( " %d%lf%d " ,&n,&w,& k)) { n =n+ 2 ; t =n/ k; n =n- t; p = 1.0 *n*w/ 2 + 0.004999999 ; printf( " %.2lf\n " ,p); } return 0 ; } 转载于:https://www.cnblogs.com/5515zjc/p/3234675.html 来源: https://blog.csdn.net/weixin_30430169/article/details/99053399

Python总结:保留小数点任意位round函数不够精确

不羁的心 提交于 2019-11-26 14:10:56
QUESTION:Python总结:保留小数点任意位round函数不够精确 ANWSER: 目录 QUESTION:Python总结:保留小数点任意位round函数不够精确 ANWSER: 一:使用round函数保留小数位数 二:使用print("%.nf"%N) 三:使用print(format(N,".nf")) 一:使用round函数保留小数位数 该方法并不严格有效,当X小数位数n<N时,仅能够输出n位小数。​​​​​​​ 二:使用print("%.nf"%N) 三:使用print(format(N,".nf")) print(round(2,2)) #2 print(round(2.0,2)) #2.0 print(round(2.00,2)) #2.0 print('%.2f'%10) #10.00 print(format(10,'.2f')) #10.00 注意: round不是简单的四舍五入 round()如果只有一个数作为参数,不指定位数的时候,返回的是一个整数,而且是最靠近的整数(这点上类似四舍五入)。但是当出现.5的时候,两边的距离都一样,round()取靠近的偶数,这就是为什么round(2.5) = 2。当指定取舍的小数点位数的时候,一般情况也是使用四舍五入的规则,但是碰到.5的这样情况,如果要取舍的位数前的小树是奇数,则直接舍弃,如果偶数这向上取舍。