吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1522|回复: 17
收起左侧

[求助] C语言%f

[复制链接]
鬼魅王子 发表于 2020-3-16 15:22
本帖最后由 鬼魅王子 于 2020-3-16 15:49 编辑

float x=123.123456789;
printf("%f",x);
输出结果123.123459
为什么保留的第六位是9?

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

AIRJK 发表于 2020-3-16 15:41
%f默认保留小数点后6位
你丫的 发表于 2020-3-16 15:41
这是输出结果不对,
因为你输出结果不对,所以输出结果不对
没错,我搁这原地TP
ch806632096 发表于 2020-3-16 15:46
float 范围内是3.4E-38 ——3.4E+38
浮点数在是按二进制存储的,二进制怎么存浮点数,也就是小数呢,是分为,数符,阶码,尾数,也就是N=r的E次方乘以M的形式,而你要表示的位数部分是有范围的,也就是位数要求的,因为一个浮点数32位,不能全用来表示位数的
ch806632096 发表于 2020-3-16 15:48
简单来说,精度是由限制的,所有连续的东西在计算机里都必须转化为离散形式,所以你看起来简单的sin函数要用泰勒公式转化为离散的形式,所以泰勒公式是最伟大的公式之一,实现了数学的统一美,把所有连续函数转化为离散的形式
 楼主| 鬼魅王子 发表于 2020-3-16 15:49
AIRJK 发表于 2020-3-16 15:41
%f默认保留小数点后6位

保留的第6位,为什么是9?我想知道这一个
ch806632096 发表于 2020-3-16 15:49
建议回顾一下ieee 754 标准
 楼主| 鬼魅王子 发表于 2020-3-16 15:50
ch806632096 发表于 2020-3-16 15:48
简单来说,精度是由限制的,所有连续的东西在计算机里都必须转化为离散形式,所以你看起来简单的sin函数要 ...

你这回答的我,看着都要死了
 楼主| 鬼魅王子 发表于 2020-3-16 15:52
ch806632096 发表于 2020-3-16 15:49
建议回顾一下ieee 754 标准

我搜索一下看看
 楼主| 鬼魅王子 发表于 2020-3-16 15:53
ch806632096 发表于 2020-3-16 15:46
float 范围内是3.4E-38 ——3.4E+38
浮点数在是按二进制存储的,二进制怎么存浮点数,也就是小数呢,是分 ...

.....实际上我看不懂
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-1-14 19:25

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表