long和double类型问题
java long和double类型问题
double转long类型,会丢失小数点后面的位数,而且不会四舍五入。
public class TestDoubleAndLong {
public static void main(String[] args) {
double a = 7.56;
long b = (long) a;
System.out.println("b="+b);
System.out.println("a四舍五入后="+Math.round(a));
}
}
输出结果为:
b=7
a四舍五入后=8
遇到的例子:数据库字段是double类型的,java的po属性是long类型,使用的是mybatis框架,最后查询出来的值会导致小数点后面丢失。
javascript 处理double类型json
如果value是2.0,javascript取得后会是2。但是2.23, 2.03正常。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>测试double类型的json</title>
<script type="text/javascript">
window.onload=function(){
var result = [{name:"Apple",price:8.0},{name:"Banana",price:8.46},{name:"Strawberry",price:8.57}];
var str = '<tr><th>水果</th><th>价格</th></tr>';
for(var i=0; i<result.length; i++){
str+='<tr><td>'+result[i].name+'</td><td>'+result[i].price+'</td></tr>';
}
document.getElementById("fruit").innerHTML=str;
};
</script>
</head>
<body>
<table id="fruit" border="1" cellspacing="0">
</table>
</body>
</html>
输出结果为: