请教!怎么做到对至少有四位小数的浮点数的运算

onlynight 2002-04-23 12:42:47
我需要对这种样子的浮点数进行大量数学运算
直接用double的话 精度不够

现在的做法是自己定义了一个数据类型
用long的成员变量存放整数部分
用int的数组存放小数部分的每一位
已经重载了所有的操作符 可是还需要重载大量的数学函数
工作量实在太大了
请问有什么好办法可以解决

谢谢!!!
...全文
104 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
shines77 2002-04-23
  • 打赏
  • 举报
回复
没搞懂什么意思,你的大概意思是两个很小的小数,经过一系列运算,由于精度的原因,变成了0.0000?如果使用double应该还可以保证吧,除非你的运算次数过多。

那你的方法也解决不了问题啊?

哦,终于明白了,用int存每一位小数也太浪费了吧,看看二进制是怎么表示小数的吧,比如:.1010(2) = 0.5 + 0.125 = 0.625(10), 即第一位为2的-1次方,第二位为2的-2次方,依次类推。一个long有64个bit,那么你可以用4-8个long,我想基本就可以解决你的问题了。

如果你觉得要运算方便,每一位小数用一个BYTE就可以了。

完了,指数级的运算,真的有这么复杂吗?
onlynight 2002-04-23
  • 打赏
  • 举报
回复
四位的小数在经过一系列指数级的运算后 只剩下0.0000了
必须用c或c++
这个处理只是整个项目的一部分啊



哪位说说想法吧
expert_zh 2002-04-23
  • 打赏
  • 举报
回复
那就用matlab来算吧!!
expert_zh 2002-04-23
  • 打赏
  • 举报
回复
是因为整数部分太大了么?
expert_zh 2002-04-23
  • 打赏
  • 举报
回复
double 怎么会连小数点后面4位都不行呢?

16,470

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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