社区
C语言
帖子详情
一个奇怪的问题,大家帮忙解决,急!!!
Aaron_Jerry
2007-11-22 09:11:17
double a,b;
int ret;
a=3.3;
b=1.1;
ret=a/b;
为什么ret的结果为2啊???请高手解答
...全文
127
16
打赏
收藏
一个奇怪的问题,大家帮忙解决,急!!!
double a,b; int ret; a=3.3; b=1.1; ret=a/b; 为什么ret的结果为2啊???请高手解答
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yuchangsheng
2007-12-08
打赏
举报
回复
本身就是一种错误
HaiKe_F16
2007-12-07
打赏
举报
回复
按你的算法输出结果确实是2,但是turboc中对float型一般是取6位小数,对于3.3 1.1 会自动给它补上6位小数.而3.3除1.1恰好等于3.由于系统随机补的6位小数.使得结果可能等于2.99999,取整后就等于2了.
你可以把3.3改为3.311 结果就是3了 把1.1改为1.11结果就是2.
WEN2222
2007-12-07
打赏
举报
回复
ret不该为整型
计算机中存储的数,如1.3456,乘以1000后取整,为1344
poppindancer
2007-12-07
打赏
举报
回复
我觉得这是因为数据转换引起的问题
enter2000
2007-11-23
打赏
举报
回复
呵呵,数据转换出的问题,经常会遇到这个问题的。
pptor
2007-11-23
打赏
举报
回复
a/b 2个浮点数 相除 由于精度问题 可能算到时 2.999什么的,
再转成整形 就变成2了
sutra
2007-11-23
打赏
举报
回复
ret=(int)(a/b+0.5);
这样取整好些
Treazy
2007-11-23
打赏
举报
回复
对于这个问题,应该这样理解a,b都是float, a= 3.3, b=1.1
假设float c = a/b 那c= 3.0,但是实际上这个c并不是我们看到的3.0
将这个浮点数小数和整数分开会发现,其小数部分为1,整数部分为2
所以在对ret = a/b的时候直接就是2了
因为浮点数没有办法很精确的去表示每一个数据,总是会有误差
所以我们用计算得到的数据往往会产生疑惑
因此建议大家不要使用浮点数,或者在使用的时候有精度上的限制
自己写个转换程序就能使结果比较可靠!
_石头_
2007-11-23
打赏
举报
回复
应该是编译器对浮点数的舍入精度造成的!
chump345
2007-11-23
打赏
举报
回复
同意LS的~
ywb1973
2007-11-22
打赏
举报
回复
三楼的说的不对,这个运算首先是两个浮点数相除,之后才取整(强制数据类型转换)
而3.3和1.1两个浮点由于存储精度的问题,可能是
3.3000000001 or 2.299999999999
同样
1.1000000001 or 1.099999999999
所以得到的结果可能是随机的
Aaron_Jerry
2007-11-22
打赏
举报
回复
我在vc环境下测试了下:
3.4/1.1=3 //????
Aaron_Jerry
2007-11-22
打赏
举报
回复
是不是这个跟具体编译器有关,还是编译器都采用这种方式?
lzn3303768
2007-11-22
打赏
举报
回复
错误的原因:因为ret为int类型,所以把两个double变量使用进一法得到4/2答案当然是2
解决办法如上
lzn3303768
2007-11-22
打赏
举报
回复
double ret; //貌似应改成
manrenmanren
2007-11-22
打赏
举报
回复
顶!
cms-cloud后台管理系统
cms-Cloud后台管理系统 cms-Cloud 基于Spring Boot、Spring Cloud & Alibaba、OAuth2的前后端分离的后台管理系统,内置模块如:部门管理、角色用户、菜单及按钮授权、数据权限、系统参数、日志管理、代码生成等。在线定时任务配置;支持集群,支持多数据源。核心技术前端技术栈 ES6、vue、vuex、vue-router、vue-cli、axios、element-ui后端技术栈 Spring Boot、Spring Cloud & Alibaba、OAuth2系统需求JDK >= 1.8MySQL >= 5.5Maven >= 3.0主要特性1. 完全响应式布局(支持电脑、平板、手机等所有主流设备)2. 强大的一键生成功能(包括控制器、模型、视图、菜单等)3. 支持多数据源,简单配置即可实现切换。4. 支持按钮及数据权限,可自定义部门数据权限。5. 对常用js插件进行二次封装,使js代码变得简洁,更加易维护6. 完善的XSS防范及脚本过滤,彻底杜绝XSS攻击7. Maven多项目依赖,模块及插件分项目,尽量松耦合,方便模块升级、增减模块。8. 国际化支持,服务端及客户端支持9. 完善的日志记录体系简单注解即可实现技术选型1、系统环境Java EE 8Servlet 3.0Apache Maven 32、主框架Spring Boot 2.2Spring Cloud Hoxton.SR3Spring Framework 5.1Spring Security 5.13、持久层Apache MyBatis 3.4Alibaba Druid 1.14、视图层Vue 2.6Axios 0.18Element UI 2.11内置功能(1) 用户管理:用户是系统操作者,该功能主要完成系统用户配置。(2) 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。(3) 岗位管理:配置系统用户所属担任职务。(4) 菜单管理:配置系统菜单,操作权限,按钮权限标识等。(5) 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。(6) 字典管理:对系统中经常使用的一些较为固定的数据进行维护。(7) 参数管理:对系统动态配置常用参数。(8) 通知公告:系统通知公告信息发布维护。(9) 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。(10) 登录日志:系统登录日志记录查询包含登录异常。(11) 在线用户:当前系统中活跃用户状态监控。(12) 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。(13) 代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下载 。(14) 系统接口:根据业务代码自动生成相关的api接口文档。(15) 服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。(16) 在线构建器:拖动表单元素生成相应的HTML代码。(17) 连接池监视:监视当期系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。 环境部署准备工作JDK >= 1.8 (推荐1.8版本)Mysql >= 5.5.0 (推荐5.7版本)Redis >= 3.0Maven >= 3.0Node >= 10nacos >= 1.1.0sentinel >= 1.6.0运行系统因为本项目是前后端分离的,所以需要前后端都启动好,才能进行访问。后端运行1、导入cms到Eclipse,菜单 File -> Import,然后选择 Maven -> Existing Maven Projects,点击 Next> 按钮,选择工作目录,然后点击 Finish 按钮,即可成功导入Eclipse会自动加载Maven依赖包,初次加载会比较慢(根据自身网络情况而定)2、创建数据库cms-cloud并导入数据脚本cms.sql(必须),quartz.sql(可选)3、创建数据库cms-config并导入数据脚本cms_config.sql(必须)4、配置nacos持久化,修改conf/application.properties文件,增加支持mysql数据源配置。# db mysqlspring.datasource.platform=mysqldb.num=1db.url.0=jdbc:mysql://localhost:3306/cms-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTCdb.user=rootdb.password=password5、打开运行基础模块(启动没有先后顺序)CmsGatewayApplication (网关模块 必须)CmsAuthApplication (认证模块 必须)CmsSystemApplication (系统模块 必须)CmsMonitorApplication (监控中心 可选)CmsGenApplication (代码生成 可选)CmsJobApplication (定时任务 可选)CmsFileApplication (文件服务 可选)前端运行# 进入项目目录cd cms-ui# 安装依赖npm install# 强烈建议不要用直接使用 cnpm 安装,会有各种诡异的 bug,可以通过重新指定 registry 来
解决
npm 安装速度慢的
问题
。npm install --registry=https://registry.npm.taobao.org 本地开发 启动项目npm run dev打开浏览器,输入:http://localhost:80 (默认账户 admin/admin123)若能正确展示登录页面,并能成功登录,菜单及页面展示正常,则表明环境搭建成功提示前端安装完node后,最好设置下淘宝的镜像源,不建议使用cnpm(可能会出现
奇怪
的
问题
)部署系统因为本项目是前后端分离的,所以需要前后端都部署好,才能进行访问后端部署bin/package.bat 在项目的目录下执行然后会在项目下生成 target文件夹包含 war 或jar1、jar部署方式使用命令行执行:java –jar xxxx.jar 或者执行脚本:bin/run.bat2、war部署方式pom.xml packaging修改为war 放入tomcat服务器webapps提示SpringBoot去除内嵌tomcat前端部署当项目开发完毕,只需要运行一行命令就可以打包你的应用# 打包正式环境npm run build:prod# 打包预发布环境npm run build:stage构建打包成功之后,会在根目录生成 dist 文件夹,里面就是构建打包好的文件,通常是 ***.js 、***.css、index.html 等静态文件。通常情况下 dist 文件夹的静态文件发布到你的 nginx 或者静态服务器即可,其中的 index.html 是后台服务的入口页面。环境变量所有测试环境或者正式环境变量的配置都在 .env.development (opens new window)等 .env.xxxx文件中。它们都会通过 webpack.DefinePlugin 插件注入到全局。常见
问题
如果使用Mac 需要修改application.yml文件路径profile如果使用Linux 提示表不存在,设置大小写敏感配置在/etc/my.cnf 添加lower_case_table_names=1,重启MYSQL服务如果提示当前权限不足,无法写入文件请检查profile是否可读可写,或者无法访问此目录
ADAMS中的过约束(超静定)
问题
前一段时间,有几个朋友问到ADAMS2013中的过约束(超静定)
问题
,笔者觉得这个
问题
很重要,所以专门开辟一篇文章阐述此
问题
。 我们知道,在理论力学中,有所谓的超静定
问题
。所谓超静定
问题
,是说,结构中未知约束力的数目超过了独立的静力学平衡方程的数目,从而使得使用静力学的平衡方程不能够求出所有的约束力。这样的
问题
就称为超静定
问题
。例如下面的平面梁,左边是固定端,右边是滚动支座。固定端有3个未知数,而滚动支座有1个未知数,所以一共是4个未知数,而该梁只能列出3个独立的平衡方程,从而使用理论力学给出的方程是不能
[delphi教程]delphi开发教程全攻略(1)
如何在Image上提示字符? 怎样加入tb2k FastReport4.0安装后中文的
问题
。 怎样单独得到现在的年和月?? [考题]这两种字符串赋值语句有什么区别 TXmlDocument控件使用
问题
急
急
急
!!!网络数据通讯
问题
(多线程如何
解决
???) 关于保存
一个
Record类型到文件中的
问题
如何使窗体在用户按下显示桌面之后不会隐藏(不是将它始终置前)谢谢各位 大家好,请D
淘天组内
急
招,
急
急
急
!HC真的多!流程简单,快到碗里来~~
女生二本二战考研失败,技术很菜,找了很久的Java岗位,都是山东省内公司,根本没有人联系我,想着可能。大三,二本,目前在用友摸鱼,现在实习一周多了,一点东西没学到,每天特别焦虑,因为实习就是想学点技术然。#非技术2024笔面经# 本人资料:本人25届大三,有段半年的AI产品实习,找的AI产品岗面试官提了。恒生二面结束,面试官还是挺不错的,也非常耐心,整个过程20min左右,大概问了我几个
问题
1.五分钟之。快手,得物,蓝月亮,蓝禾,奇安信,三七互娱,顺丰,康冠科技,金证科技24春招内推①得物【岗位】技术,
MySql 牛哥推荐有空看看
MySQL优化与深入-百篇好帖 • SQL优化大全(推荐)• MySQL优化经验• 索引的一篇文章• MYSQL优化-一篇很好的优化文章• 一条经典的SQL语句优化实例• 深入浅出MySQL数据库开发、优化与管理维护• mysql-proxy 读写分离 的错误• mysql占用cpu越来越高,请高手指教!• 这个查询语句如何优化• 请大家
帮忙
解决
一个
奇怪
的锁争用
问题
• MySQL海量数据插入,导致...
C语言
69,369
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章