分享

博客园 - 喻祥,性情中人 - java浮点运算精度问题的解决

 qzg589 2005-08-12

import java.math.BigDecimal;

public float add(float v1,float v2){
  BigDecimal b1 = new BigDecimal(Float.toString(v1));
  BigDecimal b2 = new BigDecimal(Float.toString(v2));
  return b1.add(b2).floatValue();
 }

 public float sub(float v1,float v2){
  BigDecimal b1 = new BigDecimal(Float.toString(v1));
  BigDecimal b2 = new BigDecimal(Float.toString(v2));
  return b1.subtract(b2).floatValue();
 }

 public float mul(float v1,float v2){
  BigDecimal b1 = new BigDecimal(Float.toString(v1));
  BigDecimal b2 = new BigDecimal(Float.toString(v2));
  return b1.multiply(b2).floatValue();
 }

 public float div(float v1,float v2){
  BigDecimal b1 = new BigDecimal(Float.toString(v1));
  BigDecimal b2 = new BigDecimal(Float.toString(v2));
  return b1.divide(b2,3,BigDecimal.ROUND_HALF_UP).floatValue();
 }

 public float round(float v){
  BigDecimal b = new BigDecimal(Float.toString(v));
  BigDecimal one = new BigDecimal("1");
  return b.divide(one,3,BigDecimal.ROUND_HALF_UP).floatValue();
 }

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多