❶ java 输入一个任意的浮点数,例如3.123456789,保留其两位小数输出,无需四舍五入(求详细的讲解)
方法一:
你可以先将浮点数乘以100,然后取整,非四舍五入,取整后再除以100,这样不就得到了两位小数的输出了嘛
方法二:
你还可以强制转换为String的,然后取从开始到小数点往后两位的位置结束的字符串,然后再强制转换为float值不也可以么
方法很多,这只是其中两种方法,多思考一下会有方法的。另外要多查API文档,别手懒就好,详细代码我就不给你写了,自己想想怎么写,我把代码给你写出来的话你就不会去思考了。
❷ java编写程序,接收用户输入的10个浮点数,保存在数组date中,按从大到小的顺序
import java.util.Arrays;
import java.util.Scanner;
public class PrintDouble
{
public static void main(String [] args){
double[] date = new double[10];
Scanner sc = new Scanner(System.in);
for(int i = 0; i < 10; i++){
System.out.println("请输入第" + (i+1) + "个数");
date[i] = sc.nextDouble();
}
Arrays.sort(date);
for(int i = 0; i < 10; i++){
System.out.println(date[i]);
}
}
}
自己手工写的请采纳
❸ java 浮点数计算问题
这是位运算,一般在硬件控制方面用的多,光看表达式的话无法知道其具体的意义是什么。得结合实际才行。
&叫做“按位与”,其规则是:0&0=0 1&0=0 0&1=0 1&1=1
“|”叫做“按位或”,运算规则是:0|0=0 1|0=1 0|1=1 1|1=1
0x7fffff用32位二进制表示就是 0000 0000 0111 1111 1111 1111 1111 1111
根据按位与的运算法则就是把bits的高9位清零。
0x800000用32位二进制表示是 0000 0000 1000 0000 0000 0000 0000 0000
根据按位或的运算法则就是把第24位置1。
那么综合来看,((bits & 0x7fffff)|0x800000)的意思就是先把bits的高9位清零,然后再把第24位置1。
关于前半部分,“<<”叫做左移,就是把所有二进制位向左移动若干位。和上面同理,就是先把bits的高9位清零后,再左移一位。
至于问号,就不用解释了吧?
❹ Java中怎么把浮点数转变成整数只保留整数部分
通过转换为字符串,再截取整数部分:
float a = 1.1f;//定义一个浮点变量a
String str = String.valueOf(a);//浮点变量a转换为字符串str
int idx = str.lastIndexOf(".");//查找小数点的位置
String strNum = str.substring(0,idx);//截取从字符串开始到小数点位置的字符串,就是整数部分
int num = Integer.valueOf(strNum);//把整数部分通过Integer.valueof方法转换为数字
扩展资料:
Java的浮点类型有两种:float和double。
Java的浮点类型有固定的表数范围和字段长度,字段长度和表数范围和机器无关,double类型代表双精度浮点数,float类型代表单精度浮点数。
Java的浮点数遵循IEEE754标准,采用二进制数据的科学计数法来表示浮点数,对于float型数值,第1位是符号位,接下里8位表示指数,再接下来的23位表示尾数;对于double类型数值,第一位也是符号位,接下来的11位表示指数,再接下来的52位表示尾数。