Java及Javascript中的浮点运算
在进行金额计算,及某些精确计算时,会出现意想不到的很多小数的情况。
- 对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中的浮点运算的更多相关文章
- java和javascript中this区别的浅探讨
今天在学习javascript的时候碰到了this,感觉它跟java里的有点不一样.然后上网查了一下,参考了这篇文章,JavaScript中this关键字详解,发现它们之间的区别主要是这样: java ...
- Java和JavaScript中使用Json方法大全
林炳文Evankaka原创作品. 转载请注明出处http://blog.csdn.net/evankaka 摘要:JSON(JavaScript Object Notation) 是一种轻量级的数 ...
- Java与JavaScript中判断两字符串是否相等的区别
JavaScript是一种常用的脚本语言,这也决定了其相对于其他编程语言显得并不是很规范.在JavaScript中判断两字符串是否相等 直接用==,这与C++里的String类一样.而Java里的等号 ...
- java,javascript中的url编码
真实场景 url示例如下 http://localhost:31956/Login/Auto?Token=e8a67a9f-c062-4964-b703-d79f29c8b64e&Return ...
- C++、Java、JavaScript中的正则表达式
C++(VS2013编译器):http://msdn.microsoft.com/zh-cn/library/bb982727.aspx#grammarsummary Java: ...
- Json学习总结(1)——Java和JavaScript中使用Json方法大全
摘要:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语 ...
- 浅谈Java和JavaScript中变量和数据类型的区别
对于一门编程语言的学习,如果第一步是安装环境,那么第二步一定是学习这门语言的基本规则,变量和数据类型则首当其冲 JavaScipt作为一个蹭Java热度而命名的语言,在很多方面和Java也有一定的相似 ...
- 在java中和javascript中过滤掉类似于img形式的字符串,从而不显示图片
1:javascript过滤掉<img></img>和<img />形式的字符串 <!DOCTYPE html PUBLIC "-//W3C//DT ...
- [java面试]javascript中dom取值问题radio名字一样归属于同一个组,求点击的是哪一个
题目描述: 看如下的html文件,里面定义了一些radio类型的元素,请完成parse()函数的内容,要求能够弹出对话框提示当前选中的是第几个单选框. </pre><pre code ...
随机推荐
- 面试大厂,90%会被问到的Java面试题(附答案)
面向对象的三个特征 封装,继承,多态 多态的好处,代码中如何实现多态,虚拟机中如何实现多态 允许不同类对象对同一消息作出相应,好处如下: 可替换性:多态对已存在的代码具有可替换性 可扩充性:增加新的子 ...
- 面试官:小伙子,你给我说一下你对MySQL索引的理解吧
一.索引是什么? 索引是帮助MySQL高效获取数据的数据结构. 二.索引能干什么? 索引非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要.索引能够轻易将查询性能提高好几个数量级,总 ...
- 「CF645E」 Intellectual Inquiry
题目链接 CF645E 题意 有一个长为\(n\)的由小写字母组成的字符串,需要用小写字母再填\(m\)位,使最后的字符串中本质不同的子串数量尽量多,答案对\(10^9+7\)取模. 本题数据:\(n ...
- CodeBlocks相关配置
因为我平时CodeBlocks的使用频率不高,但考试时需要用到,担心忘记相关配置在哪里调整,在此记录下. 打开调试模式 首先一定是创建项目. 项目创建完成后,配置调试器\(GDB\)路径 打开调试窗口 ...
- Java反射——读取XML文件,创建对象
读取XML文件,创建对象 config.xml <?xml version="1.0" encoding="UTF-8"?> <beans&g ...
- 10种CSS3实现的loading动画,挑一个走吧?
这篇文章主要介绍了10种CSS3实现的loading动画,帮助大家更好的美化自身网页,完成需求,感兴趣的朋友可以了解下. HTML: 1 <body> 2 <div class=&q ...
- MIT-6.005软件构建
L01 Static Typing 主要对比Java和Python Java:静态语言,运行之前所有变量都要声明.traps:整型相除还是整型,5/2=2.数值溢出,20亿*2结果是负数,这个bug不 ...
- 【NOIP2017提高A组模拟9.17】信仰是为了虚无之人
[NOIP2017提高A组模拟9.17]信仰是为了虚无之人 Description Input Output Sample Input 3 3 0 1 1 7 1 1 6 1 3 2 Sample O ...
- 【Usaco 2009 Silver】JZOJ2020年9月19日提高B组T1 音乐节拍
[Usaco 2009 Silver]JZOJ2020年9月19日提高B组T1 音乐节拍 题目 Description FJ准备教他的奶牛弹奏一首歌曲,歌曲由N(1<=N<=50,000) ...
- 使用SpringSecurity Oauth2.0实现自定义鉴权中心
Oauth2.0是什么不在赘述,本文主要介绍如何使用SpringSecurity Oauth2.0实现自定义的用户校验 1.鉴权中心服务 首先,列举一下我们需要用到的依赖,本文采用的是数据库保存用户信 ...