python怎么避免浮点精度问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python怎么避免浮点精度问题相关的知识,希望对你有一定的参考价值。
参考技术A python怎么避免浮点精度问题,只需要每次运算的时候设置小数点位数即可,希望我的回答对你有帮助。JAVA 中出现double 及float计算丢失精度的问题,大家是怎么避免的
static void doubleErr()
double a1 = 9.959955;
double a2 = 1.01;
System.out.println("double类型产生了错误请看: " + (a1 - a2));
static void floatErr()
float f1 = 1.3284544f;
float f2 = 1.32f;
System.out.println("F1-F2 float浮点型产生了错误: " + (f1 - f2));
double a1 = 9.959955;
double a2 = 1.01;
double a3 = a1 - a2;
DecimalFormat df = new DecimalFormat("#.000000");
System.out.println("double: " + df.format(a3));
static void floatErr()
float f1 = 1.3284544f;
float f2 = 1.32f;
BigDecimal n = new BigDecimal((f1 - f2));
BigDecimal n2 = n.setScale(7, BigDecimal.ROUND_FLOOR);
System.out.println("F1-F2 : " + n2);
这样就能格式化double,和控制float精度了。你试试。追问
谢谢,float仍然是错的?不知有何高招
参考技术A 用long类型来避免吧追问long它不允许小数怎么办,讲讲你的解决办法
参考技术B 很多语言都是这样。浮点数在计算机中是有误差的。所以必须使用专门的方式计算。在Java中,需要使用BigDecmal,而且需要在构造参数使用String类型。
参考技术C 可以String来处理 参考技术D 用long型的做
以上是关于python怎么避免浮点精度问题的主要内容,如果未能解决你的问题,请参考以下文章