社区
Java SE
帖子详情
怎么样输出20位以上的double字符类型?
jiaminxy
2004-04-23 06:04:55
比如说,我有
double d = "123456789012345678901234567890.00";
请问一下,我怎么样能完全正确的把 d 输出?
BigDecimal 只能正确的输出前17位,
Decimalformat 输出后,17位以后都是0,
谁知道,帮忙告诉一下,谢谢
...全文
135
14
打赏
收藏
怎么样输出20位以上的double字符类型?
比如说,我有 double d = "123456789012345678901234567890.00"; 请问一下,我怎么样能完全正确的把 d 输出? BigDecimal 只能正确的输出前17位, Decimalformat 输出后,17位以后都是0, 谁知道,帮忙告诉一下,谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Arias
2004-04-24
打赏
举报
回复
我也认为在有些数字类型的设定条件限制下,很多的问题可能出现,
这样我们就必修考虑找到可以替代的方法来实现,不要一味的停留在那里
既然这里由于限制不能实现你的输出的话,你就应该找替代办法了。
可以试试用string来输出你的问题。
netfeng
2004-04-24
打赏
举报
回复
基本的数字类型最多才达到128位,也就是说有效数字最多不会超过38位,还有小数点位和符号位。所以不管是double还是decimal都放不下你那个数。
所以我觉得一开始就只能做为String来存放。
紫黑蓝白
2004-04-24
打赏
举报
回复
以前搞过ACM,有一道题:任意位数的+-*/。就是用字符串储存数字的。
-----------------------------------------------------------------
我学数构也编过这玩意。。。
自己来实现太繁了。体力劳动!
只是希望有现成的东西可以偷工懒一下。呵呵。
bigcrazy
2004-04-24
打赏
举报
回复
java.text包中有一个DecimalFormat类,应该对你有帮助
jiaminxy
2004-04-24
打赏
举报
回复
但是我又怎么能把double d=123456789012345678901234567890.123456789;
转换成s= "123456789012345678901234567890.123456789"呢?
根本无法转化啊
liyi1945
2004-04-24
打赏
举报
回复
以前搞过ACM,有一道题:任意位数的+-*/。就是用字符串储存数字的。
appleangle
2004-04-24
打赏
举报
回复
学习
学到了要多动脑筋
dtcjs
2004-04-24
打赏
举报
回复
可以把每个数放到一个一维数组中,这样不就可以了吗?
shaopin
2004-04-24
打赏
举报
回复
好大的数字啊
panpan221
2004-04-23
打赏
举报
回复
新手学习,友情UP,关注
紫黑蓝白
2004-04-23
打赏
举报
回复
试验了一下,呵呵。
---------------------------------------------------------------------------
double d=123456789012345678901234567890.123456789;
BigDecimal d1=new BigDecimal(d);
BigDecimal d2=new BigDecimal(String.valueOf(d));
BigDecimal b=new BigDecimal("123456789012345678901234567890.123456789");
System.out.println("\nd1:"+d1);//得不到正确结果,仅17位
System.out.println("\nd2:"+d2);//得不到正确结果,仅17位
System.out.println("\nb:"+b);//OK
----------------------------------------------------------------------------
会不会是第一句就出了问题,可能double是64位的根本就放不下这么大的数。
我个人估计这是浮点数的系统存储方式问题,浮点数的基数可能默认仅17位,但好像不大可信,64位的数才花17位存基数,太小气了点吧。。。
臆测中。。。候教!
jiaminxy
2004-04-23
打赏
举报
回复
差都差不开啊,老兄!!!!你和我说说怎么差
filippo1980
2004-04-23
打赏
举报
回复
拆分开来输出
jiaminxy
2004-04-23
打赏
举报
回复
不会没人知道吧????
c语言
输出
八
位
小数,c语言
double
类型
默认
输出
几
位
小数?
C语言中常用的小数有两种
类型
,分别是 float 或
double
;float 称为单精度浮点型,
double
称为双精度浮点型。...C语言中,
输出
double
类型
(双精度实型)以及float
类型
(单精度实型)时,默认
输出
6
位
小数(不足六
位
以 0 补...
c语言 long
double
输出
格式,DEV-C++ 中用printf() 如何
输出
12字节的 long
double
类型
数据?...
该楼层疑似违规已被系统折叠隐藏此楼查看此楼在dev-c++5.7.1中,程序如下:#include int main(void)...
double
b=9876543210123456789.0,d;long
double
c=9876543210123456789.0;d=(
double
)c;printf("float is %2dB\n...
(转)定义数据
类型
为
double
,
输出
时也是
double
型
输出
,为什么小数点后
位
数只有六
位
?
定义数据
类型
为
double
,
输出
时也是
double
型
输出
,为什么小数点后
位
数只有六
位
?
【JAVA基础】
输出
double
类型
保留两
位
小数
已知 双精度标量 f, 如果想以
字符
串形式
输出
,小数点后保留2
位
,可直接通过C语言的
输出
格式,System.out.printf("%.2f", f), 达到目的。 如果想要先转变成小数点后保留2
位
的双精度变量,然后再
输出
,可以尝试用 f...
c语言
double
型小数点后几
位
_C语言中float与
double
在程序中
输出
的分别是多少
位
?...
C语言中float与
double
在程序中
输出
的分别是多少
位
?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!C语言中float与
double
在程序中
输出
的分别是多少
位
...
Java SE
62,615
社区成员
307,307
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章