1029计算浮点数相除的余

 1 #include<cstdio>
 2 using namespace std;
 3 int main()
 4 {
 5     double a,b,r;
 6     int k;
 7     scanf("%lf%lf",&a,&b);
 8     k=a/b;
 9     r=a-k*b;
10     printf("%g",r);
11
12     return 0;
13 }
  • %g用于打印浮点型数据时,会去掉多余的零,至多保留六位有效数字(不同于%e的默认保留小数点后6位)
  • 当%g用于打印超过6位的浮点型数据时,因为精度问题,%f不得不输出一个不精确的超过六位的数字,%e也是同样,而%g此时会选择%e格式进行输出,并且按第一条要求,去掉多余的零,并且四舍五入到6位数字。这是《C Primer Plus》中所说的超过精度的时候的情况。 (可见,这个6位,是按float类型精度来计算的。)
  • 当一个数字的绝对值很小的时候,要表示这个数字所需要的字符数目就会多到让人难以接受。举例而言,如果我们把π*10^-10写作0.00000000000314159就会显得非常丑陋不雅,反之,如果我们写作3.14159e-10,就不但简洁而且易读好懂。当指数是-4时,这两种表现形式大小相同。对于比较小的数值,除非该数的指数小于或者等于-5,%g才会采用科学技术发来表示,即,以%e的格式进行输出。
时间: 2024-12-17 08:56:57

1029计算浮点数相除的余的相关文章

NOI-1.3-11-计算浮点数相除的余数

11:计算浮点数相除的余数 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 计算两个双精度浮点数a和b的相除的余数,a和b都是正数的.这里余数(r)的定义是:a = k * b + r,其中 k是整数, 0 <= r < b. 输入 输入仅一行,包括两个双精度浮点数a和b. 输出 输出也仅一行,a÷b的余数 样例输入 73.263 0.9973 样例输出 0.4601 提示 注意:输出时小数尾部没有多余的0,可以用下面这种格式:double x;x =

JS浮点数相减出现异常数

今天小编出现一种情况在js中用0.3-0.2得出来的却不是0.1而是0.09999999999999999999998,很是纳闷,查看了很多资料才发现原来是如下原因导致的: "浮点数"不是"实数",浮点数有最大表示范围,在表示范围内用最接近实数的浮点数可以表示数来表示,比如 0.1是实数,意味着0.10000000-- 都是0.1,而double无法精确表示0.1,但它能精确表示 +0.1000000000000000055511151231257827021181

java.math包下计算浮点数和整数的类

(1)BigIntege:实现任意精度的整数运算.(2)BigDecimal:实现任意精度的浮点运算. 例如: 使用BigDecimal进行浮点数比较 import java.math.BigDecimal; public class HelloWorld{ public static void main(String[] args){ BigDecimal a=BigDecimal.valueOf(1.0); a=a.subtract(BigDecimal.valueOf(0.1)); //s

javascript浮点数相减、相乘出现一长串小数

149.7 * 100 = 14969.999999999998 3.57 - 2.33 = 1.2399999999999998 原文地址:https://www.cnblogs.com/wujinhong/p/12667836.html

第二章 第六节 顺序结构实例

习题评测地址:http://ybt.ssoier.cn:8088 1.计算浮点数相除的余 [题目描述] 计算两个双精度浮点数a和b的相除的余数,a和b都是正数的.这里余数(r)的定义是:a = k * b + r,其中 k是整数, 0 <= r < b. [输入] 输入仅一行,包括两个双精度浮点数a和b. [输出] 输出也仅一行,a÷b的余数. [输入样例] 73.263 0.9973 [输出样例] 0.4601 [参考代码] #include <iostream> #includ

整理小朋友在noi.openjudge上的作业(1)

NOI(题库正在建设中,做题纪录有可能会被删除,请注意) 第一章的统计放前面 1 编程基础之输入输出 10 0 0% 最基础有空补刷 2 编程基础之变量定义.赋值及转换 10 0 0% 最基础有空补刷 3 编程基础之算术表达式与顺序执行 20 0 0% 最基础有空补刷 4 编程基础之逻辑表达式与条件分支 21 0 0% 最基础有空补刷 5 编程基础之循环控制 45 10 22% 最基础有空补刷 6 编程基础之一维数组 15 5 33% 最基础有空补刷 7 编程基础之字符串 35 0 0% 有必要

php中浮点数计算问题

如果用php的+-*/计算浮点数的时候,可能会遇到一些计算结果错误的问题,比如echo intval( 0.58*100 );会打印57,而不是58,这个其实是计算机底层二进制无法精确表示浮点数的一个bug,是跨语言的,我用python也遇到这个问题.所以基本上大部分语言都提供了精准计算的类库或函数库,比如php有BC高精确度函数库,下面达内php培训老师介绍一下一些常用的BC高精确度函数使用. 例子  代码如下   <?php    $f = 0.58;    var_dump(intval(

php浮点数计算问题

如果用php的+-*/计算浮点数的时候,可能会遇到一些计算结果错误的问题,比如echo intval( 0.58*100 );会打印57,而不是58,这个其实是计算机底层二进制无法精确表示浮点数的一个bug,是跨语言的,我用python也遇到这个问题.所以基本上大部分语言都提供了精准计算的类库或函数库,比如php有BC高精确度函数库,下面介绍一下一些常用的BC高精确度函数使用. php BC高精确度函数库包含了:相加,比较,相除,相减,求余,相乘,n次方,配置默认小数点数目,求平方.这些函数在涉

js浮点数计算问题 + 金额大写转换

一 js浮点数计算问题解决方案: 1.使用 NumberObject.toFixed(num) 方法 toFixed() 方法可把 Number 四舍五入为指定小数位数的数字. 2.较精度计算浮点数 //说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显.这个函数返回较为精确的加法结果. //调用:accAdd(arg1,arg2) //返回值:arg1加上arg2的精确结果 function accAdd(arg1, arg2) { var r1, r2, m; t