2019独角兽企业重金招聘Python工程师标准>>>

今天碰到一个需求。关于小数点的处理,看起来非常简单的事情,却花了一定时间做了一些试验。最后简单总结一下,以便备忘

需求简化一下表达是这样的:

有A、B两列,A/B=C。这3列在数据库中都以decimal存放。

在应用中,要求这3列,最多保留两位小数,去掉小数点后无意义的0。举例如下:

3.03表示为3.03

3.30表示为3.3

3.0表示为3

前后端都会改变这几个数据。

1、前端实现。(JavaScript)

前端javascript而言,因为小数点精度计算经常有误差,为确保得到2位小数点,调用了toFixed函数。但是,toFixed以后,不管小数点后是不是0,都保留2位。

var a = 6.02;

var b = 3.01

var c = a/b.toFixed(2) ;//c得到了2.00

为了得到2,想了一个迂回的办法:c = a/b.toFixed(2)*100/100(如果是保留三位小数,则*1000/1000)

也可以这么做:

parseFloat("2.40").toFixed(2)*1 //parseFloat会去掉多余的0,但是toFixed在实际小数位不够的时候,会出现多余的0

用java.text.DecimalFormat("0.##")即可。

BigDecimal a = new BigDecimal(“6.02”);

BigDecimal b = new BigDecimal(“3.01”);

与js不同,不能用*100/100的方式,因为java中BigDecimal的运算小数点是以公式中各项的最长小数点位数作为最终结果的小数点位数。这样处理后结果仍然是2位数。

用DecimalFormat(“0.##”)即可解决。

另外附上一篇其他人的文章,大家可以测试下:

一java.text.DecimalFormat df=new java.text.DecimalFormat("#.##"); double d=3.14159; System.out.println(df.format(d)); 二java.math.BigDecimal BigDecimal bd = new BigDecimal("3.14159265"); bd = bd.setScale(2,BigDecimal.ROUND_HALF_UP); 三class Test1{ public static void main(String[] args){ double ret = convert(3.14159); System.out.println(ret); } static double convert(double value){ long l1 = Math.round(value*100); //四舍五入 double ret = l1/100.0; //注意:使用 100.0 而不是 100 return ret; } } 四double d = 13.4324; d=((int)(d*100))/100;

转载于:https://my.oschina.net/u/2331760/blog/794560

数值保留小数点两位,但同时去除小数点后多余0 的 javascript、java实现相关推荐

  1. php 保留小数点两位不四舍五入 bcdiv()

    echo bcdiv(2,3,2); 2/3 =0.66- 保留小数点两位 不四舍五入 Output:0.66 echo bcdiv(2,3,3); 2/3 =0.666- 保留小数点三位 不四舍五入 ...

  2. Sql中如何保留小数点两位

    在 SQL 中,可以使用 ROUND 函数来保留小数点两位.语法如下: SELECT ROUND(column_name, 2) FROM table_name; 其中,column_name 是你要 ...

  3. java精确到小数点一位_java精确到小数点后一位

    java精确到小数点后一位 [2021-02-07 01:21:06]  简介: PHP保留小数点后一位,并且不四舍五入的方法:1.使用函数[number_format],代码为[$total=num ...

  4. 【greenplum 保留小数点】greenplum 保留小数点两位

    在Greenplum中,如果需要将字段保留2位小数,可以使用CAST函数和ROUND函数的组合,如下所示: SELECT CAST(ROUND(field_name, 2) AS NUMERIC(10 ...

  5. js-计算保留小数点一两位并避免出现无限小数的bug

    web翎云阁 2016-11-30 18:03 这篇文章主要介绍了javascript实现保留两位小数的多种不同效果,如果数字的原本小数位数不到两位,那么缺少的就自动补零,非常适用于商城类网站,感兴趣 ...

  6. C++:设置有效位数/保留小数点两位

    #include <iostream> #include <ostream> using namespace std;int main() {// setiosflags(io ...

  7. SSIS导出文件保留小数点两位

  8. hive数据保留小数点两位小数

    方法一 round(column_name,2) 四舍五入截取(这种方法慎用,有时候结果不是你想要的) select round(645342.875645342,2); +------------+ ...

  9. android 如何保留数据两位小数

    今天,简单讲讲android如何保留运算结果为浮点数时,保留两位小数显示. 最近,由于换了租房的位置,状态不好,现在没有心思写比较复杂的内容,最近写博客可能都会偏向简单的内容. 这个其实很简单,最近做 ...

最新文章

  1. 马云第一次创业翻译社,差点倒闭,兼卖鲜花和礼物维持终翻身
  2. proDAD Erazr
  3. document、body对象的事件
  4. Nature调查:中国博士生们的科研围城
  5. 医生的小助手,医疗AI赋能诊断新冠肺炎新方案!
  6. Java8时间转换(LocalDateTime)代码实例
  7. python mac地址 js_使用Python从设备获取MAC地址
  8. tensorflow学习之常用函数总结:tensorflow.reduce_mean()函数
  9. matlab随机数函数小结
  10. 学成在线day13,HLS视频文件处理,FFmpeg,画面清晰度的码率, H5播放器video.js,媒资管理,断点上传文件和合并文件,WebUploader百度上传插件,
  11. ValidatorUtil验证工具类判断手机、ip地址、邮箱,身份证等
  12. 计算机播放qq音乐没声音怎么办,电脑突然没声音了.开启QQ音乐说要检查音效卡驱动程式设定是否正常....
  13. 【Project】基于LD3320 的智能语音控制系统
  14. 利用python来制作动态二维码
  15. Dubbo之手写RPC框架
  16. 微软苏州二期全面封顶,明年投入使用!三期开工时间已定,研发人才将达5000余人!...
  17. 技术创新是协同OA产品的生命力
  18. Jquery实现弹幕效果
  19. Angular 个人深究(二)【发布与订阅】
  20. 做自媒体使用哪款剪辑软件好呢?

热门文章

  1. 数据库原理及应用(索引为什么快,数据在磁盘上如何存储)
  2. dl360 g7安装linux,HPDL360G7服务器安装说明.ppt
  3. JMeter的编码与HTTP请求
  4. 修改linq结果集_linq 查询的结果会开辟新的内存吗?
  5. java beetl 视频_04.Beetl常用内置函数以及安全输出---《Beetl视频课程》
  6. everything html修改,在HTML 5视频标签上更改源
  7. const关键字在c语言的作用,C语言const关键字作用
  8. js webpack 配置路径_Vue.js学习No.5(WebPack配置二)
  9. IBM Machine Learning学习笔记(二)——Supervised Learning: Regression
  10. 图像识别算法超低代码开发方案