在进行金额计算,及某些精确计算时,会出现意想不到的很多小数的情况。

  • 对Java

  采用BigDecimal,如下代码示例

package number;

import java.math.BigDecimal;

public class NumberTest {

  public static void main(String[] args){

    double a =  2.05d;
BigDecimal c = new BigDecimal(a);
System.out.println("using double--");
System.out.println("a * 100 = " + a + " * 100 = " + a*100);
System.out.println("using BigDecimal--");
BigDecimal m = new BigDecimal("2.05").multiply(new BigDecimal(100)); //<-- please use this.
System.out.println("a * 100 = " + a + " * 100 = " + m); BigDecimal n = new BigDecimal(2.05d).multiply(new BigDecimal(100));
System.out.println("a * 100 = " + a + " * 100 = " + n); } }

上面程序输出的结果为:

using double--
a * 100 = 2.05 * 100 = 204.99999999999997
using BigDecimal--
a * 100 = 2.05 * 100 = 205.00
a * 100 = 2.05 * 100 = 204.99999999999998223643160599749535322189331054687500
  • Javascript

使用parseFloat函数和toFixed或toPrecision(12)函数。

var c=3.4-3;

console.log(c);  // 结果为:0.3999999999999999

console.log(parseFloat(c).toPrecision(12));   //结果为:0.400000000000
console.log(parseFloat(c).toFixed(1)); //结果为:0.4
console.log(parseFloat(c).toPrecision(12).replace(/\.?0+$/,'')); //结果为0.4

//当然也可以将format数字之后的字符串再转化为Number, 然后再输出toString(),尾巴上的0也可以去掉了。

//Jquery 有Number插件也可以做到上面。如果你不嫌增加更多的依赖的话。

Java及Javascript中的浮点运算的更多相关文章

  1. java和javascript中this区别的浅探讨

    今天在学习javascript的时候碰到了this,感觉它跟java里的有点不一样.然后上网查了一下,参考了这篇文章,JavaScript中this关键字详解,发现它们之间的区别主要是这样: java ...

  2. Java和JavaScript中使用Json方法大全

    林炳文Evankaka原创作品. 转载请注明出处http://blog.csdn.net/evankaka   摘要:JSON(JavaScript Object Notation) 是一种轻量级的数 ...

  3. Java与JavaScript中判断两字符串是否相等的区别

    JavaScript是一种常用的脚本语言,这也决定了其相对于其他编程语言显得并不是很规范.在JavaScript中判断两字符串是否相等 直接用==,这与C++里的String类一样.而Java里的等号 ...

  4. java,javascript中的url编码

    真实场景 url示例如下 http://localhost:31956/Login/Auto?Token=e8a67a9f-c062-4964-b703-d79f29c8b64e&Return ...

  5. C++、Java、JavaScript中的正则表达式

    C++(VS2013编译器):http://msdn.microsoft.com/zh-cn/library/bb982727.aspx#grammarsummary Java:            ...

  6. Json学习总结(1)——Java和JavaScript中使用Json方法大全

    摘要:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语 ...

  7. 浅谈Java和JavaScript中变量和数据类型的区别

    对于一门编程语言的学习,如果第一步是安装环境,那么第二步一定是学习这门语言的基本规则,变量和数据类型则首当其冲 JavaScipt作为一个蹭Java热度而命名的语言,在很多方面和Java也有一定的相似 ...

  8. 在java中和javascript中过滤掉类似于img形式的字符串,从而不显示图片

    1:javascript过滤掉<img></img>和<img />形式的字符串 <!DOCTYPE html PUBLIC "-//W3C//DT ...

  9. [java面试]javascript中dom取值问题radio名字一样归属于同一个组,求点击的是哪一个

    题目描述: 看如下的html文件,里面定义了一些radio类型的元素,请完成parse()函数的内容,要求能够弹出对话框提示当前选中的是第几个单选框. </pre><pre code ...

随机推荐

  1. 阿里面试官:小伙子,你给我说一下Spring Bean初始化的几种常规方式吧

    前言 通过构造方法实例化通过静态工厂实例化通过实例工厂实例化通过FactoryBean实例化 RumenzA实体类 package com.rumenz; public class RumenzA { ...

  2. Xcode6在ios7上编译framework报错

    错误描述: dyld: Symbol not found: _OBJC_CLASS_$_UIPresentationController Referenced from: /var/mobile/Ap ...

  3. 由OptionalLong想到的拆装箱问题

    包装类型为null的时候时候拆箱会报空指针

  4. 使用RestTemplate,显示请求信息,响应信息

    使用RestTemplate,显示请求信息,响应信息 这里不讲怎么用RestTemplate具体细节用法,就是一个学习中的过程记录 一个简单的例子 public class App { public ...

  5. 什么,kafka能够从follower副本读数据了 —kafka新功能介绍

    最近看了kafka2.4新版本的一些功能特性,不得不说,在kafka2.0以后,kafka自身就比较少推出一些新的feature了,基本都是一些修修补补的东西.倒是kafka connect和kafk ...

  6. C语言中Linux环境下编译与链接

    编写一个简单的 hello.c 文件,以此为例. 1.编译并链接一个完全包含于一个源文件的C程序. gcc hello.c gcc -Wall hello.c gcc -o hello hello.c ...

  7. Docker实战 | 第二篇:IDEA集成Docker插件实现一键自动打包部署微服务项目,一劳永逸的技术手段值得一试

    一. 前言 大家在自己玩微服务项目的时候,动辄十几个服务,每次修改逐一部署繁琐不说也会浪费越来越多时间,所以本篇整理通过一次性配置实现一键部署微服务,实现真正所谓的一劳永逸. 二. 配置服务器 1. ...

  8. 老猿学5G:融合计费基于流计费的触发器Triggers

    ☞ ░ 前往老猿Python博文目录 ░ 一.概述 每个触发条件都是一个可计费事件.SMF中的功能体CTF在用户上网时达到一定条件就会向CHF上报流量,而CTF什么时候触发流量上报是由CTF中的触发器 ...

  9. 第8.15节 Python重写自定义类的__repr__方法

    一. 引言 前面两节分别介绍了Python类中的__str__和__repr__方法的作用和语法,所有新式类都支持这两个方法,因为object类实现了这两个方法,但实际上各位开发者在自定义类的过程中, ...

  10. PyQt(Python+Qt)学习随笔:Model/View架构中的Model模型概念

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 Model/View架构中的Model模型Model与数据源通信,为体系结构中的其他组件提供数据接口 ...