| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1870 人关注过本帖
标题:程序中不能用浮点数,怎么实现啊?谢谢大家
只看楼主 加入收藏
josen0205
Rank: 2
来 自:江苏
等 级:论坛游民
帖 子:307
专家分:52
注 册:2007-5-8
收藏
得分:0 
你的是什么程序啊?

只有想不到,没有做不到
2008-09-17 17:23
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1692
专家分:4282
注 册:2007-12-27
收藏
得分:0 
那么你需要的是高精度运算的成套算法,就是用个很长的数组保存有效数字那种
自己搜一下吧
2008-09-17 18:35
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
[bo][un]candle-ren[/un] 在 2008-9-17 08:32 的发言:[/bo]


本来是浮点数,即float型,但程序中规定只能定义int,不能用float,但还不影响float型数据的计算。我是这个意思,怎么办啊?


把出题的老师揍一顿。

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-09-17 21:43
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
浮点。。把小数部分都扩大成整数,再用10的几次方描述。。。

学习需要安静。。海盗要重新来过。。
2008-09-17 21:46
candle-ren
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-5-28
收藏
得分:0 
[bo][un]josen0205[/un] 在 2008-9-17 17:23 的发言:[/bo]

你的是什么程序啊?

某控制系统的程序,实际上安全性要求高的系统很多都有这个要求,对了,C编程有个misra规则,大家可以看看,达到这个规则,程序才算安全啊~,有很多变态的规定~
2008-09-18 08:15
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
想不出浮点哪点不安全了,486以后CPU已经取消了协处理器,浮点都是直接在CPU的FPU里面计算的,怎么可能不安全……

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-09-18 08:46
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
Rule 2.2(强制) :源代码只能采用/*…*/风格的注释
Rule2.3(强制): 字符序列/*不能在注释中使用
注:C语言不支持注释的嵌套即使一些编译器支持这个语言扩展

这一条标准简直跟VIM只允许ANSI C以前的旧式函数声明一样无理取闹……又不是在写Windows源代码,就算是写Windows源代码也是有专门编译器的,才不会允许拿GCC来编译,Linux也是这样,这不明摆着脱裤子放屁么…………


Rule 14.5(强制):continue不能使用
这个似乎也比较无理取闹,什么事情都不是绝对的,有些时候你不用continue代码会变得更加难懂,虽然表面上看起来好像很好看……


Rule19.1(建议):#i nclude语句的前面只能有其他预处理指令和注释
可怜的飞燕,貌似很多代码违反了这一条= =

rule 13. 不得使用char, int, float, double, long等基本类型,应该用自己定义的类型显示表示类型的大小,如char8, uchar8, int16, int32, float32, long64, ulong64等。
看清楚,人家不是说不准用浮点,是让你自己定义一个……
typedef float float32_t;
typedef double float64_t;


LS:我只是找到一些只言片语,有没有完整版的可供下载的?

[[it] 本帖最后由 StarWing83 于 2008-9-18 09:04 编辑 [/it]]

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-09-18 08:50
candle-ren
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-5-28
收藏
得分:0 
我们的要求是既要满足misra规则,又不要浮点数~
2008-09-18 09:35
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
很简单,比如算六位浮点:

#define E 1e6;

int a=(int)(2*E);
int b=(int)(sqrt(a/E)*E);

当然这种行为纯粹抽风。

如果不用浮点数的原因,是没有浮点库,不要怀疑了,你只有两条路走:

1、不要进行任何复杂的代数运算。
2、自己实现一个基于int的浮点函数库备用。

自己选择吧……

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-09-18 09:45
candle-ren
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-5-28
收藏
得分:0 
[bo][un]StarWing83[/un] 在 2008-9-18 09:45 的发言:[/bo]

很简单,比如算六位浮点:

#define E 1e6;

int a=(int)(2*E);
int b=(int)(sqrt(a/E)*E);

当然这种行为纯粹抽风。

如果不用浮点数的原因,是没有浮点库,不要怀疑了,你只有两条路走:

1、不要进行任 ...

有浮点库,就是规定不能用浮点数。国外某大公司的软件也是这么做的,我们也是学习人家。肯定有人家的道理~
不要进行复杂运算是什么意思啊?谢谢你啊
2008-09-18 12:32
快速回复:程序中不能用浮点数,怎么实现啊?谢谢大家
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025990 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved