社区
C++ 语言
帖子详情
标准C++忠高精度浮点运算如何进行?是否有相关的类库?
Againstwind
2005-08-06 03:50:52
现在需要进行大数据高精度的浮点数计算(小数点前11位,小数点后6位),是用一般的double型进行计算容易发生小数点后的数值漂移的问题!
请问各位大虾是否有什麽办法或者相关的类库?开源的、商业的类库均可!!!
多谢指教!
...全文
1623
22
打赏
收藏
标准C++忠高精度浮点运算如何进行?是否有相关的类库?
现在需要进行大数据高精度的浮点数计算(小数点前11位,小数点后6位),是用一般的double型进行计算容易发生小数点后的数值漂移的问题! 请问各位大虾是否有什麽办法或者相关的类库?开源的、商业的类库均可!!! 多谢指教!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
22 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
randyzhu
2005-12-03
打赏
举报
回复
关注
DiabloWalkOnTheEarth
2005-11-04
打赏
举报
回复
C++ 就用 cryptlib , C 就用 openssl.
fiftymetre
2005-11-03
打赏
举报
回复
long double也不是很精的
回复人: goodluckyxl(被人遗忘的狗<写驱动不是我强项,但我可以做好>) ( ) 信誉:142 2005-11-03 09:51:00 得分: 0
是基本类型没有什么标准库的
高精度的数据运算要精确到10-N次方
还是用char数组来存储整数部分和小数部分
按BCD格式来运算也方便
同意狗狗的关点
goodluckyxl
2005-11-03
打赏
举报
回复
是基本类型没有什么标准库的
高精度的数据运算要精确到10-N次方
还是用char数组来存储整数部分和小数部分
按BCD格式来运算也方便
gxqcn
2005-11-03
打赏
举报
回复
看来还是需要“精确”的,那么下面的算法库一定可以满足:
HugeCalc 超大整数完全精度快速计算器/算法库 V5.1.0.1
HugeCalc 是一款高精度算法库(同时包含 MBCS + UNICODE 版),适合于大规模科学计算,尤其适用于数论、密码学等领域研究,其核心算法耗费作者十余年的心血。具有占用资源少、效率高、使用便捷、易二次开发、可移植性强、可扩展性好等特点。关键文件 HugeCalc.dll 虽然很小,却提供了 428 个功能接口,且其计算速度完全可与大型专业数学工具软件媲美!其最核心的算法现已优于当前的 apfloat、Mathematica、Maple,甚至 GMP!
HugeCalc 现有公共接口 428 个,提供了如下功能:
⊙ 高精度快速加法
⊙ 高精度快速减法
⊙ 高精度快速乘法
⊙ 高精度快速除法
⊙ 高精度快速同余
⊙ 高精度快速位运算
⊙ 高精度快速乘方
⊙ 高精度快速开方
⊙ 超大整数快速取对数
⊙ 高精度快速求排列
⊙ 高精度快速求组合
⊙ 高精度快速阶乘、双阶乘
⊙ 高精度快速计算 Fibonacci 数列
⊙ 高精度快速乘积取模
⊙ 高精度快速数论倒数取模运算
⊙ 高精度快速乘方取模(支持负指数)
⊙ 高精度快速求最大公约数(支持群组运算)
⊙ 高精度快速计算扩展最大公约数
⊙ 高精度快速求最小公倍数(支持群组运算)
⊙ 高精度快速“等幂和”(支持群组运算)
⊙ 高精度快速任意进制转换
⊙ 自由指定有效位运算
⊙ 强大而灵活的输出
⊙ 高精度计时器(有暂停、累计、复位等功能)
为了与广大网友分享 HugeCalc 带来的便捷,该版公开了 HugeCalc.dll 的所有接口文件(同时包含 MBCS + UNICODE 版),大家可以更自由地进行高精度计算或自开发,而无须再依赖于 Mathematica 等大型软件。
相对于前一版,V5.1.0.1不仅仅新增了许多公共函数,还优化了很多核心算法;并放宽了对未注册用户的使用限制,提供多种模式以供未注册用户进行试用和评估。
下载链接:http://maths.myrice.com/software.htm#02
gxqcn
2005-11-03
打赏
举报
回复
回复人: Againstwind(逆风飞扬) ( ) 信誉:100 2005-8-9 21:07:50 得分: 0
fangrk(加把油,伙计!)
可是我要进行这种高精度数据的加、乘、除运算,你这样可以表示,可是计算怎麽办?
还请指教!
多谢各位的帮忙!!!
试试这个吧,绝对不会失望:http://maths.myrice.com/software.htm#02
newbiestar
2005-11-03
打赏
举报
回复
回复人: fiftymetre(“天使”因为有一张干净的脸,却常做肮脏的事。) ( ) 信誉:100 2005-11-03 10:12:00 得分: 0
long double也不是很精的
回复人: goodluckyxl(被人遗忘的狗<写驱动不是我强项,但我可以做好>) ( ) 信誉:142 2005-11-03 09:51:00 得分: 0
是基本类型没有什么标准库的
高精度的数据运算要精确到10-N次方
还是用char数组来存储整数部分和小数部分
按BCD格式来运算也方便
同意狗狗的关点
=========================================
不是long double不精,而是浮点这种方法不精确,从原理知道就不可能精确的东西,就算再怎么修改也不可能精确的。
cluber2001
2005-11-03
打赏
举报
回复
应该用字符数组来表示。
Againstwind
2005-08-21
打赏
举报
回复
fansy007(范特西)
java的big decimal当小数位数比较多的时候,经过大量计算也有可能出现消暑漂移的问题,所以也要借助一些计算函数库的。
你有办法吗?请多提建议!
fansy007
2005-08-16
打赏
举报
回复
java有big decimal
c++么......,标准库里肯定没的:(
Againstwind
2005-08-15
打赏
举报
回复
有人知道吗?
请帮忙!!!
Againstwind
2005-08-09
打赏
举报
回复
另外,还是想请教一下!
是否有这样的运算库??
Againstwind
2005-08-09
打赏
举报
回复
fangrk(加把油,伙计!)
可是我要进行这种高精度数据的加、乘、除运算,你这样可以表示,可是计算怎麽办?
还请指教!
多谢各位的帮忙!!!
我啃
2005-08-08
打赏
举报
回复
如果处理的是大数例如:46446464641313131313134313743…………几千到几万位的可以用RSA加密算法中用到的大数库,如果是小型浮点数可以用多个double变量来存不同区域的数据,如果是大型浮点数那只能自己做一个char的class了
fatacy
2005-08-07
打赏
举报
回复
mark
killer1984
2005-08-07
打赏
举报
回复
据我所知,在高精度情况下都是转化成整型来运算的,然后再按精度要求还原为浮点。
因为整型表示范围可以无限扩大(使用自定义整型),而且在计算中需要浮点的时候都可以乘十转换为整型,再记录下乘的次数以备还原,所以基本上可以满足任何精度要求。
根据你的精度要求,大概只需要long或long long就行了(具体用哪个要实验),这样只需要对重写几个会产生小数位的运算就行了。
Jagen在路上
2005-08-06
打赏
举报
回复
一般要求高精度的,需要采用任意精度计算法。它实际上是要使用字符串来完全模拟常规计算问题的迭代。还有就是对于浮点数,可以先将参与计算的各个元素,乘以一个较大的数位,比如10000000,计算完后再进行除。如采取后一方法,为了保证很高的精度,这个乘数可以采用很大,但是需要使用若干个unsigned int型变量进行存储。如果你学过汇编语言,你会了解,在16位处理器下,计算32位数的加减法会采用两个寄存器,同时伴有用于进位处理的指令。
chengshiq
2005-08-06
打赏
举报
回复
楼上的厉害
PMsg
2005-08-06
打赏
举报
回复
高精度和高位数的 用字符来处理比较好~
fangrk
2005-08-06
打赏
举报
回复
我觉得可以把你要的数值用两个double来表示,一个表示整数部分,一个表示小数部分。
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
double v1=123456789123456789;
double v2=0.123456789123123456789123;
cout.precision(30);
cout.setf(ios_base::fixed,ios_base::floatfield);
cout<<v1<<'\n'<<v2;
}
/*
123456789123456780.000000000000000000000000000000
0.123456789123123450000000000000
你的位数应该够了吧?
*/
加载更多回复(2)
BigFloat:BigFloat-任意精度数字的
浮点运算
。-开源
综上所述,BigFloat作为一款致力于提供
高精度
浮点运算
能力的库,对
C++
项目来说是一个极为有力的工具。尽管它对于初学者可能显得不那么友好,但开源的特性让整个开发者社区都有机会参与到其改进和优化中来。随着时间...
C++
类型转换与IO流[项目代码]
例如,当一个较小的整型值赋给一个较大的整型变量时,或者在算术运算中一个整型值与一个浮点型值运算时,都会自动
进行
隐式类型转换。 显式类型转换需要程序员明确指定转换规则,可以通过不同的运算符来实现,包括...
方便的vc计算器,能够精确到小数点后六位
这个计算器的独特之处在于它具有
高精度
计算能力,能够处理小数点后六位的数字,这比
标准
的
浮点运算
更加精确,适合需要
进行
高精度
数学计算的场景。 【描述】:“方便,精确的计算器,有原代码,希望多多指教” 描述中...
STM32F2:STM32F205 的
C++
mbed
类库
- ARM Cortex-M4内核:采用32位浮点单元(FPU),支持单精度和双精度
浮点运算
,提高计算性能。 - 高时钟频率:工作频率可达120MHz,提供快速响应能力。 - 内存配置:内置高达1MB的闪存和128KB的SRAM,满足大部分...
四则运算计算器V
C++
2. **数据类型**:为了存储和操作数字,
C++
提供了多种数据类型,如`int`(整型)、`float`(单精度浮点型)和`double`(双精度浮点型)。根据设计,可能需要选择合适的类型来确保运算的精确性。 3. **条件语句**:...
C++ 语言
65,208
社区成员
250,519
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章