做java题,求任意三条边是否,是三角形,使用了double,float类型,结果输入1.1、2.2、3.3的时候,提示1.1+2.2>3.3
是不对的,因为double,float,会丢失精度,
解决方法:使用BigDecimal,但注意如下
1、不能使用传统上的+、-、*、/ 等算术运算符直接对其对象进行数学运算,
2、而必须调用其相对应的方法
package com.demo.test;
import java.math.BigDecimal;
import java.util.Scanner;
public class Test3 {
public static void main(String[] args) {
sJX();
}
//求三角形
public static void sJX() {
BigDecimal a;
BigDecimal b;
BigDecimal c;
Scanner sc=new Scanner(System.in);
System.out.println("请输入a边");
a=sc.nextBigDecimal();
System.out.println("请输入b边");
b=sc.nextBigDecimal();
System.out.println("请输入c边");
c=sc.nextBigDecimal();
//方法一
// if(a.doubleValue()<=0 || b.doubleVal