Java,Python数据失真怎么处理
1,Java
当你进行java的四则运算的时候,尤其是double,float类型的,当小数点超过3位(具体多少位不太清楚)的时候,就会出现失真的情况(精度误差)
所以,需要使用BigDecimal 函数来处理
public static void main(String[] args) { while (true) { double f, t; Scanner k = new Scanner(System.in); f = k.nextDouble(); t = k.nextDouble();//这个就是输入了啦 //System.out.println(f+t); BigDecimal bigDecimal1=new BigDecimal(Double.toString(f));//用string不会丢失double的精度 BigDecimal bigDecimal2=new BigDecimal(Double.toString(t)); System.out.println(bigDecimal1.add(bigDecimal2));//相加输出 System.out.println(bigDecimal1.subtract(bigDecimal2));//相除 System.out.println(bigDecimal1.divide(bigDecimal2, 2, RoundingMode.HALF_UP));//相除 //divide(bigDecimal2,保留几位小数,舍入模式) System.out.println(bigDecimal1.multiply(bigDecimal2));//相乘 } }
Python
Python就很简单了,直接使用decimal库
from decimal import * a = Decimal("4.212") b = Decimal("5.412412") c = a * b print(c)