博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
豆瓣小站维护:【代码review】数据结构与算法分析(C++) 1.3题
阅读量:4341 次
发布时间:2019-06-07

本文共 869 字,大约阅读时间需要 2 分钟。

//-------------------------1_3.cpp
//problem:
double类型运算的精度如何控制,总是有误差;对浮点数在内存中如何表示及运算,还没有特别清晰理性的认识。
 
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
using namespace std;
 
void printDigit(int n)                   //唯一的I/O处理函数,打印单个整数
{  
 printf("%d", n);
}
 
void printInt(double num)        //打印double数的整数部分
{
 
if (abs(num) >= 10)
        {
            printInt(num/10);
        }
        printDigit((int)num%10);
}
 
void printOut(double num,int n)        //完整的处理double数的函数,第二个参数为小数位
{
if(num<0)
printf("-");                    //符号处理
printInt(abs(num));            //先打印整数部分
printf(".");
        double numDic;
        if(num<0)
    numDic=(long)num-num;
        else
    numDic=num-(long)num;         //计算小数部分
double numshift=pow(10.0,n);
numDic=floor(numDic * numshift + 0.5) / numshift;             //四舍五入,保留小数部分的原有的小数位
        numDic*=pow(10,n);                    //将小数部分化为整数
printInt(numDic);
                        //打印小数部分
    }
 
int main()
{
    printOut(-9876.5432f,4);
system("pause");
return 0;
}
 

转载于:https://www.cnblogs.com/liangchu/archive/2012/12/28/2836983.html

你可能感兴趣的文章
总结(6)--- python基础知识点小结(细全)
查看>>
亿级曝光品牌视频的幕后设定
查看>>
ARPA
查看>>
JSP开发模式
查看>>
我的Android进阶之旅------&gt;Android嵌入图像InsetDrawable的使用方法
查看>>
Detours信息泄漏漏洞
查看>>
win32使用拖放文件
查看>>
Android 动态显示和隐藏软键盘
查看>>
raid5什么意思?怎样做raid5?raid5 几块硬盘?
查看>>
【转】how can i build fast
查看>>
null?对象?异常?到底应该如何返回错误信息
查看>>
django登录验证码操作
查看>>
(简单)华为Nova青春 WAS-AL00的USB调试模式在哪里开启的流程
查看>>
图论知识,博客
查看>>
[原创]一篇无关技术的小日记(仅作暂存)
查看>>
20145303刘俊谦 Exp7 网络欺诈技术防范
查看>>
原生和jQuery的ajax用法
查看>>
iOS开发播放文本
查看>>
20145202马超《java》实验5
查看>>
JQuery 事件
查看>>