int big = 1234567890;
float approx = big;
System.out.println(big);
System.out.println(approx);输出结果:
1234567890
1.23456794E9为什么float会输出这个数字呢请请指教~
float approx = big;
System.out.println(big);
System.out.println(approx);输出结果:
1234567890
1.23456794E9为什么float会输出这个数字呢请请指教~
解决方案 »
- 基于内容图像检索(如何取得直方图)
- 如何用JAVA调用系统的notepad,并写入一行文字?
- 如何让动态创建的JPanel为选中状态
- 请教高手,如何用snmp4j实现对mib信息的收发,严重加分!!!
- 大侠帮帮小弟啊,类的拷贝函数
- classpath的问题..大家来帮我看看阿
- 菜鸟不耻上问:java 中有If then else 语句么,如果有,请问怎么实现?
- 窗口放缩的问题,图形界面高手请进!
- jtree的addTreeExpansionListener、addTreeWillExpandListener、addTreeSelectionListener都是什么意思?
- Applet的权限问题
- 问一个JVM常量池中字符串编码的问题?
- Test类的main方法中怎样执行Test类中的其他方法?
以所占字节数为基准,单字节向多字节转换就是所谓的扩宽,比如1到2、2到4等。int到其他整数类型的转换、float到double是没有失真的,完全一致。但是整数到浮点数的转换虽然也是扩宽,但因为浮点数是用有效数字的方式进行表示的,转换的时候可能出现精度损失(float类型不能支持9位有效数字),如int i=1234567890;float pp = i - (float)i;pp不等于零。带符号int转换为其他整数类型的方法是对其数字的二位补码方式进行带符号扩展【这个me碰到问题的关键byte-》int】,char类型转换为int类型的方法是进行0扩展。提示:无论精度是否损失,扩宽转换都不能引发运行时错误。摘自http://www.wangchao.net.cn/bbsdetail_54908.html
你看看java.text.DecimalFormat类,它可以按照你的要求格式化数字。
在项目中有遇到这样的问题.
5.0E3 可以简单认为是 5000
就是5 * 10的3次方我试过如果你用
String s_number = "1234567890";
float f_number = Float.valueOf(s_number);
System.out.println(f_number);结果还是一样,估计误差总是不变的