社区
茶馆
帖子详情
很菜问题:浮点数如何四舍五入,求教。
watermouse
2002-03-28 09:54:33
有一浮点数f1,用FloatToStr(f1)得到3.6557,希望它能四舍五入为3.66,如何做?
在DBGRID中浮点数字段ff也同样存在这个问题。
问题可能很菜,多谢各位指点。
...全文
125
7
打赏
收藏
很菜问题:浮点数如何四舍五入,求教。
有一浮点数f1,用FloatToStr(f1)得到3.6557,希望它能四舍五入为3.66,如何做? 在DBGRID中浮点数字段ff也同样存在这个问题。 问题可能很菜,多谢各位指点。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zygtp
2002-03-28
打赏
举报
回复
double Round(double Value,int P)
{
int Result=int(Value);
double Tmp=Value-Result;
if(Tmp==0)return Value;
for(int i=0;i<P;i++)Tmp*=10;
if(Value>0)
Tmp=int(Tmp+0.5);
else
Tmp=int(Tmp-0.5);
for(int i=0;i<P;i++)Tmp/=10;
return Result+Tmp;
}
勉励前行
2002-03-28
打赏
举报
回复
浮点数總會有這樣那樣的問題,要精確只有用整數
如"1/2" 可能結果是:0.49999999999999999999999999999999999999999,
也可能是0.5或0.5000000000000000000000000000000000000001
四舍五入后是0,是1.就難說了
double x ;
if(1/x*x == 1) 這個條件不一定成立.
對于一個給定的浮点数,其四舍五入可這樣:
double x;
AnsiString s1=FormatFloat("0.00",x+0.005);
使用Floor(double x),可取得整數部分,
floor finds the largest integer not greater than x.
Floor(-2.8) = -3
Floor(2.8) = 2
四舍五入時,要注意負數
0.1 四舍五入 = 0
-0.1 四舍五入 = 0
-0.8 四舍五入 = -1
Chimae
2002-03-28
打赏
举报
回复
同意cokeclassic();再类型转换
wt_sanlian
2002-03-28
打赏
举报
回复
float f = 89.500;
计算机中实际存储的可能是89.499999,而0.500在计算机中也可能存储的是0.49999
按照楼上的可就不能四舍五入了.
应当如这样写
float f = 89.500;
int i = (int)f;
i = i + (f-i) > 0.49 ? 1: 0;
ygd
2002-03-28
打赏
举报
回复
#include < math.h>
float f = 89.523;
int i = (int)floor(f + 0.5);// floor是取整函数
cokeclassic
2002-03-28
打赏
举报
回复
float f1=3.6557;
AnsiString s1=FormatFloat("0.00",f1);
kingcaiyao
2002-03-28
打赏
举报
回复
这样解决看一看,自已写一个函数,这个函数带两个参数,第一参数是数值本身,第二个参数是用户要求的带多少位小数。首先在找到要求取得小数位数的下一位,然后判断这一位是0到9里面的哪一位,以确定是四舍还是五入。
1019:
浮点数
向零舍入
1019:
浮点数
向零舍入 时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】 输入一个单精度
浮点数
,将其向零舍入到整数。说明:向零舍入的含义是,正数向下舍入,负数向上舍入。提示:可以使用强制类型转换来实现。 【输入】 一个单精度
浮点数
。 【输出】 一个整数,即向零舍入到整数的结果。 【输入样例】 2.3 【输出样例】 2 说明: 主要考查学生能否灵活运用强制类型转换。 首先要了解正数和负数,以及它们的关系,尤其是还没有学过负数的小学生。 正数,就是平时常
信息学奥赛一本通 1019:
浮点数
向零舍入 | OpenJudge NOI 1.2 06:
浮点数
向零舍入 | 洛谷 B2016
浮点数
向零舍入
【题目链接】 ybt 1019:
浮点数
向零舍入 OpenJudge NOI 1.2 06:
浮点数
向零舍入 【题目考点】 强制类型转换 C语言写法:(类型)量 C++写法: 类型(量) 强制类型转换可以使整个表达式的值变为要转换的类型,但原变量的类型和值都没有变化。 例: float a = 3.14; cout<<(int)a<<endl;//输出3 cout<<int(a)<<endl;//输出3 赋值或强制类型转换过程中的精度丢失 将浮点型量赋
C语言实现
浮点数
四舍五入
对于正数,将要进行
四舍五入
的
浮点数
加上0.5后再向下取整即可。对于负数,将
浮点数
减去0.5后再向上取整即可。在 C 语言中,实现
浮点数
的
四舍五入
可以通过数学方法和函数库两种方式来完成。,但是这两个函数只适用于整型数据类型,因此我们需要使用到另一个函数。无论使用哪种方式,都能够准确地实现
浮点数
的
四舍五入
操作。C 语言标准库中提供了
四舍五入
的函数。,它们可以对
浮点数
进行
四舍五入
操作。C语言实现
浮点数
四舍五入
。
【C语言】
浮点数
四舍五入
目录 一、
浮点数
实现
四舍五入
二、补充:ceil,floor,强制类型转换,round,
四舍五入
法对比及其应用场景 一、
浮点数
实现
四舍五入
以保留3位数为例 1.直接实现【不利用库函数】 int (x*1000+0.5)/1000.0;【特别注意,这里一定除以的是1000.0】 2.间接实现【利用math函数库中的round】 二、补充:ceil,floor,强制类型转换,round,
四舍五入
法对比及其应用场景 #include <stdio.h> #incl..
【信息学奥赛】1019:
浮点数
向零舍入(C++)
今天来让我们来继续分析信息学奥赛一本通的第三十题,也就是按照题目的要求把小数点后面的数全部舍去。(并且,看了我的文章的人只有少数人点了赞,如果你觉得我写的好,或对你有帮助的话,请点赞!!!并收藏。谢谢!) 【题目描述及其目的】 1019:
浮点数
向零舍入 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 58117 通过数: 43674 【题目描述】 输入一个单精度
浮点数
,将其向零舍入到整数。说明:向零舍入的含义是,正数向下舍入...
茶馆
551
社区成员
20,046
社区内容
发帖
与我相关
我的任务
茶馆
C++ Builder 茶馆
复制链接
扫一扫
分享
社区描述
C++ Builder 茶馆
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章