c++-两个double数相加除2小数部分竟然被截断?

问题描述

两个double数相加除2小数部分竟然被截断?

解决方案

输出为 100001

解决方案二:

(double)((a+b)/2)这样呢

解决方案三:

所以还是标准IO好使。。

解决方案四:

2.0前面也加个double,然后最后结果前面也加个double

解决方案五:

double a = 100000.0;
double b = 100001.0;
double c = ((a+b)*1.0)/2.0;这么写

解决方案六:

加上#include 这个头文件,然后在输出那改成这样:cout<<setiosflags(ios::fixed)<<setprecision(7)<<d<<endl;//7表示小数点后面的位数,位数不够,末尾添0

解决方案七:

被截断什么意思,输出的是什么结果啊

解决方案八:

试试把结果赋值给一个变量,再输出。
double a = 100000.0;
double b = 100001.0;
double c = ((a+b)*10)/2;
cout<<c<<endl;

时间: 2024-09-02 17:36:16

c++-两个double数相加除2小数部分竟然被截断?的相关文章

系统-C#特殊的两个double类型变量相加问题

问题描述 C#特殊的两个double类型变量相加问题 今天在两个double型变量求和时发现一个很奇怪的问题.问题如下: 0.35+0.32=0.66999999999999993 系统环境:32位XP 开发环境:vs2010 调试时用 "即时窗口"运算也会出现这个问题. 类似的还有 0.35+0.31=0.65999999999999992 0.25+0.21=0.45999999999999996 想明白其中的原理,或者这是个编译器的bug?望大神指教 解决方案 Decimal h

两个超大数相加算法

#include <stdio.h> #include <string.h> #include <stdlib.h> /************************************************************************/ /* 功能:实现两个超大数相加 /* 参数:source1 -- 被加数,字符型数组,如12 /* source2 -- 加数,字符型数组, /* result -- 存放和,字符型数组 /********

Two Sum:两数相加

[ 问题: ] Given an array of integers, find two numbers such that they add up to a specific target number. The function twoSum should return indices of the two numbers such that they add up to the target, where index1 must be less than index2. Please no

java 二维数组-java中把两个维数相同的矩阵对应的元素相加得到新的矩阵的代码

问题描述 java中把两个维数相同的矩阵对应的元素相加得到新的矩阵的代码 java中把两个维数相同的矩阵对应的元素相加得到新的矩阵的代码怎么写,在int[][] add(int[][]a,int[][] b)中添加代码,实现这个功能 解决方案 循环不就行了,和遍历差不多.

VBS 两数相加取值问题分析_vbs

一个昵称为预言家晚报的朋友很喜欢玩SOSO问问,等级LV10,已经算比较高了.晚上挂QQ的时候,看到他的问问有更新,就点进去看了一下,问题是: 我写了如下一段VBS 复制代码 代码如下: dim a,b,c a=inputbox("a","please input") b=inputbox("b","please input") c=a+b msgbox(c) 可是最后结果是11,我知道肯定是倒数第二行的"+&quo

请问一下大于long型的两个数据怎么相加啊

问题描述 请问一下大于long型的两个数据怎么相加啊 解决方案 解决方案二:这是我写的一个大整数减法的class.如果实现加法,只须对代码末尾的:sub=a.subtract(b); 不要调用subtract方法,而调用add方法即可.即:sub=a.add(b); /************************************************************************2736大整数减法Description求2个大的正整数相减的差Input第1行是测试

[华为机试真题][2014]64.实现两个合法时间相加

题目 描述: 给定两个合法的时间(格式固定:hh:mm:ss,时间合法,不用考虑其它情况),输入两个时间相加后的结果:注意,相加后的结果也必需是一个合法的时间: 附合法时间定义:小时在[00-23]之间,分钟和秒分别是在[00-59]之间: 运行时间限制: 无限制 内存限制: 无限制 输入: 时分秒格式的时间字符串,如00:00:00 输出: 时分秒格式的时间字符串,如00:00:00 样例输入: 00:00:00 00:00:01 样例输出: 00:00:01 答案提示: 建议将时间转换为秒数

JAVA 求1~1000之间的连数相加

问题描述 例如:3=1+2,15=7+8,100=18+19+20+21+22.求1000以内有多少这样的数,分别是哪些数? 解决方案 解决方案二:题目描述的不清楚,3=1+2算的话,那1+2=3呢?3+4=7呢?1+2+3+4=10呢?解决方案三:确实啊没说清楚按lz的意思5=2+37=3+49=4+5....那么至少所有奇数都能成立啊解决方案四:楼主的意思是不是说:连续的数字相加等于1~1000之内的数,这样的组合有多少个?解决方案五:100内的,把100都改成1000看看是不是你要求的pu

printf-下面的程序错在哪? 为什么无论输入两个什么数,其输出结果都是0?

问题描述 下面的程序错在哪? 为什么无论输入两个什么数,其输出结果都是0? .............. void main() { float min(float x,float y); float a,b,m; scanf("%f%f",&a,&b); m=min(a,b); printf("min is %dn",m); system("pause"); } float min(float x,float y) { floa