double型除法问题

felix_c 2009-11-27 10:58:43
我想将一个String型转换为double型再除以1000后得到一个double型的值,不要科学计数法表示如下:
String str = "0.15"
double d = Double.valueOf(str);
double dd = (double)d/1000;
System.out.println(dd);
这个打印出来的是科学计数法表示的 1.5E-4
可不可以不用科学计数法表示的 比如结果为 0.00015 什么的?
请各位大侠帮忙
...全文
653 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
三界五行外 2009-11-28
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 s04141225 的回复:]
那个可能我的描述有点问题,我最后的结果其实不是输出,而是为了将值传递给一个double型的变量。。。
[/Quote]
所有的double类型变量都是64为浮点型数据,根本不用转换,可以直接传递。
你在屏幕上看到的小数点形式、科学计数法形式都是数据的字符串表现形式,都是double类型转化后的String类型,仅在屏幕上显示的时候使用,内部处理的时候根本不用考虑这些。
v05120s 2009-11-28
  • 打赏
  • 举报
回复
12楼说得对,直接赋值就行;不必在乎小数点的问题,如果想看结果,可用bigDecimal来计算,再格式化一下就可以了
墨水鱼 2009-11-28
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 s04141225 的回复:]
那个可能我的描述有点问题,我最后的结果其实不是输出,而是为了将值传递给一个double型的变量。。。
[/Quote]

那就不存在科学计数法还是小数点的问题,直接赋值就行。
felix_c 2009-11-28
  • 打赏
  • 举报
回复
谢谢各位了,现在结贴给分了
felix_c 2009-11-27
  • 打赏
  • 举报
回复
那个可能我的描述有点问题,我最后的结果其实不是输出,而是为了将值传递给一个double型的变量。。。
墨水鱼 2009-11-27
  • 打赏
  • 举报
回复
java.io.PrintWriter也就是System.out所属类的源码:

public void println(double x) {
synchronized (lock) {
print(x);
println();
}
}
public void print(double d) {
write(String.valueOf(d));
}
墨水鱼 2009-11-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 s04141225 的回复:]
引用 2 楼 inkfish 的回复:
String str = "0.15"
double d = Double.valueOf(str);
double dd = (double)d/1000;
System.out.println(new DecimalFormat(0.00000000).format(dd));


new DecimalFormat(0.00000000).format(dd)这个结果是String型的 我想要的是double型的结果
[/Quote]

无论怎么样,你最后输出的就是字符串,看到的也是字符串,而不是double,眼睛无法看到double的。
即使System.out.println(dd),输出的仍旧是字符串。
felix_c 2009-11-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 antony0203 的回复:]
double型表示就是这样的,你要展现成0.00015显示就转成string,运算就用double
[/Quote]
但是我要将值再传递给一个double型的变量的
felix_c 2009-11-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zl3450341 的回复:]
Java codeString str="0.15";double d= Double.valueOf(str);double dd= (double) d/1000;
DecimalFormat format=new DecimalFormat("0.00000");
String result= format.format(dd);
System.out.println(result);
[/Quote]
我需要的结果是double型的 不是String型的,也就是最后要求输入double型的数
antony0203 2009-11-27
  • 打赏
  • 举报
回复
double型表示就是这样的,你要展现成0.00015显示就转成string,运算就用double
老张-AI 2009-11-27
  • 打赏
  • 举报
回复
String str = "0.15";
double d = Double.valueOf(str);
double dd = (double) d / 1000;
DecimalFormat format = new DecimalFormat("0.00000");
String result = format.format(dd);
System.out.println(result);
老张-AI 2009-11-27
  • 打赏
  • 举报
回复
String str = "300"; 
double d = Double.valueOf(str);
double dd = (double)d/600;
DecimalFormat format = new DecimalFormat("0.00%");
String result = format.format(dd);
System.out.println(result);
felix_c 2009-11-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 inkfish 的回复:]
String str = "0.15"
double d = Double.valueOf(str);
double dd = (double)d/1000;
System.out.println(new DecimalFormat(0.00000000).format(dd));
[/Quote]

new DecimalFormat(0.00000000).format(dd)这个结果是String型的 我想要的是double型的结果
墨水鱼 2009-11-27
  • 打赏
  • 举报
回复
String str = "0.15"
double d = Double.valueOf(str);
double dd = (double)d/1000;
System.out.println(new DecimalFormat(0.00000000).format(dd));
yeah_aly 2009-11-27
  • 打赏
  • 举报
回复
帮忙顶起

51,408

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧