| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 727 人关注过本帖
标题:关于浮点数
只看楼主 加入收藏
davidguhao
Rank: 1
来 自:广东
等 级:新手上路
帖 子:126
专家分:7
注 册:2016-7-18
结帖率:89.47%
收藏
已结贴  问题点数:10 回复次数:4 
关于浮点数
程序代码:
// printfdemo.c-- printf()函数用法示例
#include <stdio.h>

char *m1 = "Binary";
char *m2 = "Decimal";
char *m3 = "Octal";
char *m4 = "Hexadecimal";

int main(void)
{
float d1 = 10000.123;
int n;

puts("Outputting a number with different field widths.\n");
printf("%5f\n", d1);
printf("%10f\n", d1);
printf("%15f\n", d1);
printf("%20f\n", d1);
printf("%25f\n", d1);

puts("\n Press Enter to continue...");
fflush(stdin);
getchar();

puts("\nUse the * field width specifier to obtain field width");
puts("from a variable in the argument list.\n");

for (n = 5; n <= 25; n += 5)
printf("%f %*f\n", d1, n, d1);

puts("\n Press Enter to continue...");
fflush(stdin);
getchar();

puts("\nInclude leading zeros.\n");

printf("%05f\n", d1);
printf("%010f\n", d1);
printf("%015f\n", d1);
printf("%020f\n", d1);
printf("%025f\n", d1);

puts("\n Press Enter to continue...");
fflush(stdin);
getchar();

puts("\nDisplay in octal, decimal, and hexadecimal.");
puts("Use # to precede octal and hex output with 0 and 0X.");
puts("Use - to left-justify each value in its field.");
puts("First display column labels.\n");

printf("%-15s%-15s%-15s", m2, m3, m4);

for (n = 1; n < 20; n++)
printf("\n%-15d%-#15o%-#15X", n, n, n);

puts("\n Press Enter to continue...");
fflush(stdin);
getchar();

puts("\nUse the %n conversion command to count characters.\n");
printf("%s%s%s%s%n", m1, m2, m3, m4, &n);
printf("\n\nThe last printf() output %d characters .\n", n);

return 0;
} 


可以把这个程序复制粘贴到编译器中……原本的10000.123后面怎么多了047?
(这回我真的没有抄错程序……)
搜索更多相关主题的帖子: include 
2016-08-12 11:16
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册:2011-1-18
收藏
得分:0 
如果浮点数能精确的表示所有的实数
那么全世界的硬盘都可以销毁了,
首先,将全世界的所有数据拼接起来,组成一个长长的整数,然后取这个整数的倒数,存入float类型即可。
4字节的float就可以存储无限多的实数,那还要硬盘干什么,直接一张白纸就行了,比如 0x437A0000,能写下8个字符的小纸条就够过了。
2016-08-12 12:05
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:5 
程序代码:
#include <stdio.h>

char *m1 = "Binary";
char *m2 = "Decimal";
char *m3 = "Octal";
char *m4 = "Hexadecimal";

int main(void)
{
float d1 = 10000.123;
int n;

puts("Outputting a number with different field widths.\n");
printf("%5.3f\n", d1);
printf("%10.3f\n", d1);
printf("%15.3f\n", d1);
printf("%20.3f\n", d1);
printf("%25.3f\n", d1);

puts("\n Press Enter to continue...");
fflush(stdin);
getchar();

puts("\nUse the * field width specifier to obtain field width");
puts("from a variable in the argument list.\n");

for (n = 5; n <= 25; n += 5)
printf("%.3f %*.3f\n", d1, n, d1);

puts("\n Press Enter to continue...");
fflush(stdin);
getchar();

puts("\nInclude leading zeros.\n");

printf("%05.3f\n", d1);
printf("%010.3f\n", d1);
printf("%015.3f\n", d1);
printf("%020.3f\n", d1);
printf("%025.3f\n", d1);

puts("\n Press Enter to continue...");
fflush(stdin);
getchar();

puts("\nDisplay in octal, decimal, and hexadecimal.");
puts("Use # to precede octal and hex output with 0 and 0X.");
puts("Use - to left-justify each value in its field.");
puts("First display column labels.\n");

printf("%-15s%-15s%-15s", m2, m3, m4);

for (n = 1; n < 20; n++)
printf("\n%-15d%-#15o%-#15X", n, n, n);

puts("\n Press Enter to continue...");
fflush(stdin);
getchar();

puts("\nUse the %n conversion command to count characters.\n");
printf("%s%s%s%s%n", m1, m2, m3, m4, &n);
printf("\n\nThe last printf() output %d characters .\n", n);

return 0;
}

注意,这样只是不打印出来了,不代表后面没有数字

[此贴子已经被作者于2016-8-12 12:22编辑过]

2016-08-12 12:18
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:5 
说明这个问题涉及到float的存储,不是一两句能说清楚的,就不提了。
你只要记住浮点数有效数字超过7位改用double就行了。
2016-08-12 12:26
快速回复:关于浮点数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035301 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved