wnlt.net
当前位置:首页 >> jAvA 转化为DouBlE类型后精度 >>

jAvA 转化为DouBlE类型后精度

float f = 1.2f; double d = Double.parseDouble(String.valueOf(f)) ; System.out.println(d); 直接转换会设计到精度问题,所以需要借助字符串 保证不丢失数据

首先要明白 == 比较的是引用 string a ="ab";string b = "a" + "b";system.out.println(a==b);这时候输出的是什么?有点java基础的可能都会认为是false;结果运行一下是true.原因是因为string对象被放在常量池了,再次出现同样的java字符

先定义: java.text.DecimalFormat myformat=new java.text.DecimalFormat("#0.00"); 然后就用: myformat.format(a); 如: double a; a= 3.1415926; System.out.println(myformat.format(a)); 或者4舍5入法 double a=3.1415926 ; BigDecimal a=new BigDecimal(f); double af = b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();

import java.lang.Math; class Xiti { public static int nthNum(int nth, int zhiShu) { int sum = 0; for(int i = 0; i < nth; i++) { int d = zhiShu * (int)Math.pow(10, i); sum += d; } return sum; } public static int sum(int numberOfTime, int zhiShu) { int sum = 0;

使用Double类中的parseDouble(String s) 方法

这个 问题是 Float 单精度浮点类型 的精度低 double 双精度浮点类型的精度 高 而从float 自动转为double类型时 精度提高 4.2 本身为数不够 程序会自动为你填写 变成double 4.19 也有可能 4.18 4.17 4.16 4.15 都有可能 因为它进一位 都是 4.2 系统为你自动填写

这么写肯定会出现空指针 除非num 和 strnum4 长度一样 不知道你写这段代码什么意思 是要把num里面的字符 赋值成double吗?public class Main { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub

String --> doubledouble d = Double.parseDouble("1.0");String --> floatfloat f = Float.parseFloat("1.0f");String --> intint i = Integer.parseInteger("123");呵呵,还有long也是这种用法,不过记得string在转换数值的时候,string必须是数值串如果包含其他字符,会报类型转化异常的..

额..你楼上和楼主我有份愚见 首先:Java无法精确计算小数后面的比如 double a = 1.3; double b = 1.5; System.out.println( a == b); 你会发现结果是true 因为java计算的时候已经把小数部分截止掉了 或者说不止Java 应该其他语言也是这样..

String s = String.format("%.0f", parseDouble);

网站首页 | 网站地图
All rights reserved Powered by www.wnlt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com