double转字符串?

jxwch001 2018-01-18 09:03:11
一个大的double数字,如何能正确的转为字符串
如: double d = 10100160110101001;
如何转成 "10100160110101001",用各种方法,发现会变成“10100160110101000”
...全文
726 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
stevenjin 2018-01-26
  • 打赏
  • 举报
回复
这个应该是精度问题
休闲中 2018-01-25
  • 打赏
  • 举报
回复
应该跟CPU计算精度有点关系
秋的红果实 2018-01-18
  • 打赏
  • 举报
回复
不是转化的问题,是double精度问题 https://msdn.microsoft.com/library/system.double.aspx ---------------------------\0
jxwch001 2018-01-18
  • 打赏
  • 举报
回复
所以不大明白:double的范围: ±5.0 × 10 −324 到 ±1.7 × 10 308。这里才10的16次方。为何不能正确的转换 Convert.ToInt64也是返回10100160110101000
wanglifeng995 2018-01-18
  • 打赏
  • 举报
回复
这么大个数,可能你在赋值给double变量d时就已失去了精度,再将d转字符串时当然得不到你想要的了。这个数在存时,可试试楼上的decimal啦
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
double 只能表示到 15个有效数位
Double 表示不来17位的数 不过一般都用不到double用float足够了
Antecer 2018-01-18
  • 打赏
  • 举报
回复
正如版主所述,double的精度只有15位,如果你确实想把这一长串数据转换为string,那么建议源数据的类型使用decimal来代替double. decimal 到 string 的转换不会造成精度丢失。
xuzuning 2018-01-18
  • 打赏
  • 举报
回复
double 只能表示到 15个有效数位

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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