问题要点:
输入的实数没有限制大小。考虑到float、double有限制范围、会出现精度丢失的问题,需要将输入的值接收为字符串。
描述:求实数的绝对值。
输入
一个实数
输出
输出一行,结果保留两位小数
代码:
package oj1002;
import java.util.Scanner;
/**
* 该程序需注意分两种情况
* 1、有小数,将小数点作为索引,并保留两位小数或补全两位小数
* 2、无小数,直接按程序输出
* @author Renxing
* @time 2020年11月24日 21:45
*/
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String in = sc.nextLine();
if(in.indexOf('.')==-1) {
char zhengfu=in.charAt(0);
if (zhengfu == '-') {
System.out.println(in.substring(1)+".00");
}else {
System.out.println(in+".00");
}
}else {
String zhengshu = in.substring(0,in.indexOf('.'));
char zhengfu=in.charAt(0);
String xiaoshu = in.substring(in.indexOf('.'));
if (xiaoshu.length() >= 3) {
xiaoshu = xiaoshu.substring(0,3);
}else {
xiaoshu = xiaoshu+'0';
}
if (zhengfu == '-') {
System.out.println(zhengshu.substring(1)+xiaoshu);
}else {
System.out.println(zhengshu+xiaoshu);
}
}
}
}