社区
C++ 语言
帖子详情
double 转int
欢兴
2010-09-19 11:19:47
请问下这么把double转换int而不丢失精度
...全文
177
12
打赏
收藏
double 转int
请问下这么把double转换int而不丢失精度
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hai040
2010-09-19
打赏
举报
回复
[Quote=引用 7 楼 huan_xing 的回复:]
不能用移位或者什么方法来解决吗,比如用两个int(32位) 来表示double(64)
[/Quote]
用8个char来放都行,但这只是存放而不是转换
1.1转成整数不失精度?*10?
xingzhe2001
2010-09-19
打赏
举报
回复
存储的话当然可以,但是你不能当作int来计算了。
欢兴
2010-09-19
打赏
举报
回复
[Quote=引用 8 楼 xingzhe2001 的回复:]
怎么可能不丢失精度,一个是浮点,一个是整数,表示范围也查很多.而且IEEE double光fraction部分就52位,比整数的32位还多。除非对于某些ieee double的数,指数部分固定,就是说小数点后有几个0固定的情况下,且小数部分后20位为0(二进制),那么可以用int存储double 的fraction一点都不丢失精度。
[/Quote]
那能不能用两个int来存储一个double,用的时候再转换过来
ayw215
2010-09-19
打赏
举报
回复
显然不可能
int在32位下是4个字节
double是8个字节
除非你自己写个大整数,把double放到大整数里面去
xingzhe2001
2010-09-19
打赏
举报
回复
怎么可能不丢失精度,一个是浮点,一个是整数,表示范围也查很多.而且IEEE double光fraction部分就52位,比整数的32位还多。除非对于某些ieee double的数,指数部分固定,就是说小数点后有几个0固定的情况下,且小数部分后20位为0(二进制),那么可以用int存储double 的fraction一点都不丢失精度。
欢兴
2010-09-19
打赏
举报
回复
不能用移位或者什么方法来解决吗,比如用两个int(32位) 来表示double(64)
sunshaozeng
2010-09-19
打赏
举报
回复
没小数部份?int放得下?
Csuxiaowu
2010-09-19
打赏
举报
回复
不可兼得-
seacat_hello
2010-09-19
打赏
举报
回复
不太明白你的意思
不知道这个是否满足你的要求
double dval;
int ival = int(dval + 1e-10)
老邓
2010-09-19
打赏
举报
回复
是四舍五入么?
double d = 1.51;
int i = int(d + 0.5);
hai040
2010-09-19
打赏
举报
回复
没小数部份?int放得下?
visualwind
2010-09-19
打赏
举报
回复
只能四舍五入,所以一定会丢失精度的
MT5 常用函数集成库编写教学不定期持续更新
int
多持仓单数=交易.持仓单数统计(Symbol(),magic号码,POSITION_TYPE_BUY);
int
空持仓单数=交易.持仓单数统计(Symbol(),magic号码,POSITION_TYPE_SELL);
double
收0=iClose...
double
转
int
关于
double
转
int
类型,在本来的认知中,以为任何情况强
转
可以搞定一切,但在实际应用时发现不然,需求是需要从excel表中读出xx.xx这样的数字信息,且需要在此数值*100后作为查询条件去db查询,这就需要精确性了,对于基础小白来讲,还是做个笔记记下吧,先看强
转
的例子:
Double
a = 2.3 * 100;
int
i = new
Double
(a)...
如何在Java中将
double
转
换为
int
?
在本文中,我们将看到如何将
double
转
换为
int
。 在Java编程中,您将有一个
double
原语值(例如82.14),但是要执行进一步的操作,您需要一个
int
值(例如82),所以让我们看看如何在Java中将
double
转
换为
int
。 您可以通过三种方式将
double
转
换为
int
。我将在下面列出所有内容,然后我们将一一列出。 1,将
double
转
换为
int
—使用类型
转
换 2,将
double
转
换为
int
—使用 Math.round() 3,将
double
转
换为
int
—使用
Double
.
Int
Value
double
转
int
类型
double
转
int
类型 方法一
double
double
1 = 111.111;
int
int
1= new
Double
(
double
1).
int
Value(); System.out.pr
int
ln(
int
1); 方法二
double
double
2= 222.222;
int
int
2 = (
int
)Math.round(
double
2);
int
int
22 = (
int
)Math.ceil(
double
2);
int
int
222 = (
int
)Math.floor(
double
2); Sy
android(JAVA)
double
转
int
类型(随笔)
double
转
int
类型以及去掉小数点 一、
double
double
1 = 111.111;
int
int
1= new
Double
(
double
1).
int
Value(); System.out.pr
int
ln(
int
1); 二、
double
double
2= 222.222;
int
int
2 = (
int
)Math.round(
double
2);
int
int
22 = (
int
)Math.ceil(
double
2);
int
int
222 = (
int
)Math.floor(do
C++ 语言
64,639
社区成员
250,578
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章