热门标签 | HotTags
当前位置:  开发笔记 > IOS > 正文

C++实现浮点数精确加法

这篇文章主要为大家详细介绍了C++实现浮点数精确加法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了C++实现浮点数精确加法的具体代码,供大家参考,具体内容如下

实现两个正浮点数的精确加法

参与运算的浮点数及计算结果所需存储空间都不会超过main函数中的定义

main函数框架要求如下:

int main(){
 char num1[128],num2[128],res[128];
 cout<<"Enter the first number:";
 cin>>num1;
 cout<<"Enter the second number:";
 cin>>num2;
 add(num1,num2,res);
 cout<

C++实现:

#include 

using namespace std;

void add(char num1[], char num2[], char res[]);

int get_len(char num[]);

int get_integer(char num[]);

int get_dot(char num[]);

int get_decimal_len(char num[]);

int get_integer_len(int x);

int char_to_int(char num[], int begin, int len);

void int_to_char(char res[], int x);

void get_decimal(char num1[], char num2[]);

char decimal[128] = {0};

int main() {
 char num1[128] = {0}, num2[128] = {0}, res[128] = {0};
 cout <<"Enter the first number:";
 cin >> num1;
 cout <<"Enter the second number:";
 cin >> num2;
 add(num1, num2, res);
 cout <= 0; --i) {
 res[i] = x % 10 + '0';
 x /= 10;
 }
 res[l + 1] = '\0';
}

//得到整数部分
int get_integer(char num[]) {
 int integer = 0, x = get_dot(num);
 for (int i = 0; i <= x - 1; ++i) {
 integer = integer * 10 + num[i] - '0';
 }
 return integer;
}

//得到小数部分长度
int get_decimal_len(char num[]) {
 int x = get_dot(num), len = 0;
 for (int i = x + 1; num[i] != '\0'; ++i)len++;
 return len;
}

//得到整数的长度
int get_integer_len(int x) {
 int integer_len = 0;
 if (x == 0)return 1;
 while (x > 0) {
 x /= 10;
 integer_len++;
 }
 return integer_len;
}

//得到字符串长度
int get_len(char num[]) {
 int sum = 0;
 for (int i = 0; num[i] != '\0'; ++i) sum++;
 return sum;
}

//得到小数变成整数后的和
void get_decimal(char num1[], char num2[]) {
 int decimal_len = get_decimal_len(num1) > get_decimal_len(num2) &#63; get_decimal_len(num1) : get_decimal_len(num2);
 int decimal_sum = char_to_int(num1, get_dot(num1), decimal_len) + char_to_int(num2, get_dot(num2), decimal_len);
 int_to_char(decimal, decimal_sum);
 if (decimal_len  get_decimal_len(num2) &#63; get_decimal_len(num1) : get_decimal_len(num2);
 int decimal_sum = char_to_int(num1, get_dot(num1), decimal_len) + char_to_int(num2, get_dot(num2), decimal_len);
 if (decimal_len  get_dot(res); --i) {
 if (res[i] == '0') {
 res[i] = '\0';
 break;
 }
 break;
 }
 }
 num1[l1] = '\0', num2[l2] = '\0';
}

总结:

  • 用整型数组来储存各个位数的数字
  • 学会进位制,悟透进位原理
  • 熟练掌握字符串数组与整型数组的相互转换
  • 学会用指针来辅助输出

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


推荐阅读
  • C++实现经典排序算法
    本文详细介绍了七种经典的排序算法及其性能分析。每种算法的平均、最坏和最好情况的时间复杂度、辅助空间需求以及稳定性都被列出,帮助读者全面了解这些排序方法的特点。 ... [详细]
  • 本文基于刘洪波老师的《英文词根词缀精讲》,深入探讨了多个重要词根词缀的起源及其相关词汇,帮助读者更好地理解和记忆英语单词。 ... [详细]
  • 本文介绍如何通过Windows批处理脚本定期检查并重启Java应用程序,确保其持续稳定运行。脚本每30分钟检查一次,并在需要时重启Java程序。同时,它会将任务结果发送到Redis。 ... [详细]
  • 如何优化2060显卡设置以提升《Apex英雄》游戏体验
    《Apex英雄》作为一款热门的战术竞技游戏,吸引了大量玩家。本文将探讨如何通过优化GeForce RTX 2060显卡设置,确保在《Apex英雄》中获得最佳性能和流畅的游戏体验。 ... [详细]
  • 本章将深入探讨移动 UI 设计的核心原则,帮助开发者构建简洁、高效且用户友好的界面。通过学习设计规则和用户体验优化技巧,您将能够创建出既美观又实用的移动应用。 ... [详细]
  • 本文介绍如何通过SQL查询从JDE(JD Edwards)系统中提取所有字典数据,涵盖关键表的关联和字段选择。具体包括F0004和F0005系列表的数据提取方法。 ... [详细]
  • 如何高效创建和使用字体图标
    在Web和移动开发中,为什么选择字体图标?主要原因是其卓越的性能,可以显著减少HTTP请求并优化页面加载速度。本文详细介绍了从设计到应用的字体图标制作流程,并提供了专业建议。 ... [详细]
  • 本文详细介绍了如何通过命令行启动MySQL服务,包括打开命令提示符窗口、进入MySQL的bin目录、输入正确的连接命令以及注意事项。文中还提供了更多相关命令的资源链接。 ... [详细]
  • 扫描线三巨头 hdu1928hdu 1255  hdu 1542 [POJ 1151]
    学习链接:http:blog.csdn.netlwt36articledetails48908031学习扫描线主要学习的是一种扫描的思想,后期可以求解很 ... [详细]
  • 本文将详细介绍在Windows 7环境下,检查U盘启动盘是否制作成功的多种方法,包括通过BIOS设置和使用模拟启动工具。 ... [详细]
  • 本文介绍如何使用 NSTimer 实现倒计时功能,详细讲解了初始化方法、参数配置以及具体实现步骤。通过示例代码展示如何创建和管理定时器,确保在指定时间间隔内执行特定任务。 ... [详细]
  • 本文介绍了在Windows环境下使用pydoc工具的方法,并详细解释了如何通过命令行和浏览器查看Python内置函数的文档。此外,还提供了关于raw_input和open函数的具体用法和功能说明。 ... [详细]
  • 题目Link题目学习link1题目学习link2题目学习link3%%%受益匪浅!-----&# ... [详细]
  • 本文探讨了 C++ 中普通数组和标准库类型 vector 的初始化方法。普通数组具有固定长度,而 vector 是一种可扩展的容器,允许动态调整大小。文章详细介绍了不同初始化方式及其应用场景,并提供了代码示例以加深理解。 ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
author-avatar
a58224227
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有