蓝桥杯-小数运算,保留小数点
2017-04-01 16:15
162 查看
java 中默认小数声明是double;
如:float x = 1.0;报错;需要写:float x = 1.0f;
* float表示单精度浮点数在机内占4个字节,用32位二进制描述
* double表示双精度浮点数在机内占8个字节,用64位二进制描述
* 对编程人员来说,double 和 float 的区别是double精度高,有效数字16位,float精度7位。但double消耗内存是float的两倍,double的运算速度比float慢得多,java语言中数学函数名称double 和 float不同,不要写错,能用单精度时不要用双精度(以省内存,加快运算速度)。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
保留小数点:
方法一:
double d = 3.1415926;
String result = String .format("%.2f",d);
%.2f %. 表示 小数点前任意位数 2 表示两位小数 格式后的结果为f 表示浮点型。
题目一:
历史上有许多计算圆周率pai的公式,其中,格雷戈里和莱布尼茨发现了下面的公式:
pai = 4*(1-1/3+1/5-1/7 ....)
这个公式简单而优美,但美中不足,它收敛的太慢了。
如果我们四舍五入保留它的两位小数,那么:
累积1项是:4.00
累积2项是:2.67
累积3项是:3.47
。。。
请你写出它累积100项是多少(四舍五入到小数后两位)。
注意:只填写该小数本身,不要填写任何多余的说明或解释文字。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
保留小数点方法二:
--------------------------------
题目二:
无穷分数
无穷的分数,有时会趋向于固定的数字。
请计算【图1.jpg】所示的无穷分数,要求四舍五入,精确到小数点后5位,小数位不足的补0。
请填写该浮点数,不能填写任何多余的内容。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
有些精度高的必须用double类型;
1/1 + 1/2 + 1/3 + 1/4 + ... 在数学上称为调和级数。
它是发散的,也就是说,只要加上足够多的项,就可以得到任意大的数字。
但是,它发散的很慢:
前1项和达到 1.0
前4项和才超过 2.0
前83项的和才超过 5.0
public class test {
public static void main(String[] args) {
double sum = 0;
double i = 1.0d;
int count = 0;
while (sum<15.0) {
sum+=1.0d/i;
i++;
count++;
}
System.out.println(count);
}
}
如:float x = 1.0;报错;需要写:float x = 1.0f;
* float表示单精度浮点数在机内占4个字节,用32位二进制描述
* double表示双精度浮点数在机内占8个字节,用64位二进制描述
* 对编程人员来说,double 和 float 的区别是double精度高,有效数字16位,float精度7位。但double消耗内存是float的两倍,double的运算速度比float慢得多,java语言中数学函数名称double 和 float不同,不要写错,能用单精度时不要用双精度(以省内存,加快运算速度)。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
保留小数点:
方法一:
double d = 3.1415926;
String result = String .format("%.2f",d);
%.2f %. 表示 小数点前任意位数 2 表示两位小数 格式后的结果为f 表示浮点型。
题目一:
历史上有许多计算圆周率pai的公式,其中,格雷戈里和莱布尼茨发现了下面的公式:
pai = 4*(1-1/3+1/5-1/7 ....)
这个公式简单而优美,但美中不足,它收敛的太慢了。
如果我们四舍五入保留它的两位小数,那么:
累积1项是:4.00
累积2项是:2.67
累积3项是:3.47
。。。
请你写出它累积100项是多少(四舍五入到小数后两位)。
注意:只填写该小数本身,不要填写任何多余的说明或解释文字。
public class test { public static void main(String[] args) { float sum = 0; for (float i = 1; i <= 100; i++) { if (i%2!=0) { sum += 1.0f/(i*2-1); }else { sum -= 1.0f/(i*2-1); } String result = String.format("%.2f", sum*4); System.out.println(result); } } }
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
保留小数点方法二:
public static String formatDouble4(double d) { DecimalFormat df = new DecimalFormat("#.00"); return df.rmat(d);//string类型 } public class Main { public static void main(String[] args) { String aString = "2.34"; float a = Float.parseFloat(aString);//string 类型和float 转换 System.out.println(a); } }
--------------------------------
题目二:
无穷分数
无穷的分数,有时会趋向于固定的数字。
请计算【图1.jpg】所示的无穷分数,要求四舍五入,精确到小数点后5位,小数位不足的补0。
请填写该浮点数,不能填写任何多余的内容。
/*递归和小数运算*/ public class test { public static void main(String[] args) { float a= digui(1.0f); String result = String.format("%.5f", a); System.out.println(result); } private static float digui(float f) { // TODO Auto-generated method stub if (f==100.0f) { return f; } return f/(f+digui(f+1)); } }
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
有些精度高的必须用double类型;
1/1 + 1/2 + 1/3 + 1/4 + ... 在数学上称为调和级数。
它是发散的,也就是说,只要加上足够多的项,就可以得到任意大的数字。
但是,它发散的很慢:
前1项和达到 1.0
前4项和才超过 2.0
前83项的和才超过 5.0
public class test {
public static void main(String[] args) {
double sum = 0;
double i = 1.0d;
int count = 0;
while (sum<15.0) {
sum+=1.0d/i;
i++;
count++;
}
System.out.println(count);
}
}
相关文章推荐
- android editText 控制输入最大值、保留两位小数、保留小数点前面两位数
- 在实现文本框只能输入数字和小数点的基础上实现了价格样式(保留两位小数)
- C#中小数点后保留两位小数,四舍五入的函数及使用方法
- 小数四舍五入JS保留小数点(四舍五入、四舍六入)实例
- UITextField只能输入数字以及输入数字和小数点并且小数点后保留2位小数
- mysql格式化小数保留小数点后两位(小数点格式化)
- 保留小数点后几位小数的处理方法
- Android除法运算,保留小数
- 编制一个完成两个数的四则运算程序。如:用户输入34+56则输出结果90.00。要求运算结果保留两位小数,用户输入时一次将两个数和操作符输入。
- C# 小数点保留俩位小数
- java中两个整数相除得到小数点并保留两位小数的方法
- MySql格式化小数保留小数点后两位
- java除法运算保留两位小数,不只是取整
- mysql格式化小数保留小数点后两位(小数点格式化)
- (第2讲)Java小数如何保留小数点后n位
- 关于Java运算保留小数点总结
- js 运算保留小数位
- java中小数的处理:高精度运算用bigDecimal类,精度保留方法,即舍入方式的指定
- 【js】小数点后保留两位小数
- C# 平方、开方、保留小数 运算