精华内容
下载资源
问答
  • JS不同数据类型相加

    2020-12-06 01:12:41
    JS不同数据类型相加 一、字符串(String)和数字(Number)相加 1.数字在前,字符串在后 (从左到右计算,先计算数字表达式,再把计算结果转化为字符串和后面的字符串相加); var result1 = 5 + 5 + "happy"; //10happy ...

    JS不同数据类型相加

    一、字符串(String)和数字(Number)相加

    1.数字在前,字符串在后

    (从左到右计算,先计算数字表达式,再把计算结果转化为字符串和后面的字符串相加);

    var result1 = 5 + 5 + "happy"; //10happy
    console.log(result1);
    
    2.字符串在前,数字在后(数字转化为字符串相加)
     var result2 = "happy" + 5 + 5; //happy55
     console.log(result2);
    
    3.空文本(文本可能有多个空格)加数字,有多少个空格就显示多少个空格
        	// 空文本,没有空格
            var result3 = "" + 5 + 5; //55
            console.log(result3);
            // 一个空格
            var result4 = " " + 5 + 5; //' 55' (有一个空格)
            console.log(result4);
            // 多个空格
            var result5 = "         " + 5 + 5; //'         55'(空格全部显示)
            console.log(result5);
    

    二、数字(Number)和布尔值(Boolean)相加

    数字和布尔值相加,布尔值true转化为1,布尔值false转化为0,与数字相加;

    1.数字在前,布尔值在后
            var result6 = 5 + true; //6
            console.log(result6);
    
    2.布尔值在前,数字在后
            var result7 = false + 5; //5
            console.log(result7);
    

    三、字符串(String)与布尔值(Boolean)相加

    布尔值转换为字符串相加;

            var result8 = "happy" + true; //happytrue
            console.log(result8);
            var result9 = false + "happy"; //falsehappy
            console.log(result9);
    

    四、NULL和 数字/字符串 相加

    1.NULL和数字相加(NULL转化为0,与数字相加)
            var result10 = null + 5; //5
            console.log(result10);
    
    2.NULL和字符串相加(NULL转化为字符串,与字符串相加)
            var result10 = "happy" + null; //happynull
            console.log(result10);
    

    五、NULL和Boolean相加

    NULL转化为0,
    Boolean中的true转化为1,
    Boolean中的false转化为0;

            var result11 = null + true; //1
            console.log(result11);
            var result12 = null + false; //0
            console.log(result12);
    

    六、undefined 与其余数据类型相加

    undefined 只与字符串进行累加时有效(undefined 视为字符串"undefined"处理),其他情况皆返回 NaN;

    1.undefined与字符串相加
            var result13 = undefined + "happy";
            console.log(result13); //undefinedhappy
    
    2.undefined与其余数据类型相加,均返回NaN;
            var result14 = undefined + 5;
            console.log(result14); //NaN
            var result15 = undefined + true;
            console.log(result15); //NaN
            var result16 = undefined + false;
            console.log(result16); //NaN
            var result17 = undefined + null;
            console.log(result17); //NaN
    

    七、求模运算

    求模 % 运算,运算结果只取决于被除数的正负;
    如果 % 左边的操作数是正数,则模除的结果为正数或零;
    如果 % 左边的操作数是负数,则模除的结果为负数或零。

            -12 % -8 = -4; 
            12 % -8 =  4;
            -12 % 8 = -4;
    

    完整代码:

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>不同数据类型的相加运算</title>
    </head>
    
    <body>
        <script>
            // 一、字符串(String)和数字(Number)相加
            /* 
             1.数字在前,字符串在后
             (从左到右计算,先计算数字表达式,再把计算结果转化为字符串和后面的字符串相加)
            */
            var result1 = 5 + 5 + "happy"; //10happy
            console.log(result1);
            // 2.字符串在前,数字在后(数字转化为字符串相加)
            var result2 = "happy" + 5 + 5; //happy55
            console.log(result2);
            // 3.空文本(文本可能有多个空格)加数字,有多少个空格就显示多少个空格
            // 空文本,没有空格
            var result3 = "" + 5 + 5; //55
            console.log(result3);
            // 一个空格
            var result4 = " " + 5 + 5; //' 55' (有一个空格)
            console.log(result4);
            // 多个空格
            var result5 = "         " + 5 + 5; //'         55'(空格全部显示)
            console.log(result5);
    
            /*
            二、数字(Number)和布尔值(Boolean)相加
            数字和布尔值相加,布尔值true转化为1,布尔值false转化为0,与数字相加
            */
            // 1.数字在前,布尔值在后
            var result6 = 5 + true; //6
            console.log(result6);
            // 2.布尔值在前,数字在后
            var result7 = false + 5; //5
            console.log(result7);
    
            /* 
            三、字符串(String)与布尔值(Boolean)相加
            布尔值转换为字符串相加
            */
            var result8 = "happy" + true; //happytrue
            console.log(result8);
            var result9 = false + "happy"; //falsehappy
            console.log(result9);
    
            // 四、NULL和 数字/字符串 相加
            // 1.NULL和数字相加(NULL转化为0,与数字相加)
            var result10 = null + 5; //5
            console.log(result10);
            // 2.NULL和字符串相加(NULL转化为字符串,与字符串相加)
            var result10 = "happy" + null; //happynull
            console.log(result10);
    
            /* 五、NULL和Boolean相加
            NULL转化为0,
            Boolean中的true转化为1,
            Boolean中的false转化为0
            */
            var result11 = null + true; //1
            console.log(result11);
            var result12 = null + false; //0
            console.log(result12);
    
            // 六、undefined 与其余数据类型相加
            // undefined 只与字符串进行累加时有效(undefined 视为字符串"undefined"处理),其他情况皆返回 NaN;
            // 1.undefined与字符串相加
            var result13 = undefined + "happy";
            console.log(result13); //undefinedhappy
            // 2.undefined与其余数据类型相加,均返回NaN;
            var result14 = undefined + 5;
            console.log(result14); //NaN
            var result15 = undefined + true;
            console.log(result15); //NaN
            var result16 = undefined + false;
            console.log(result16); //NaN
            var result17 = undefined + null;
            console.log(result17); //NaN
    
            // 七、求模运算
            /* 求模 % 运算,运算结果只取决于被除数的正负。
             如果 % 左边的操作数是正数,则模除的结果为正数或零;
             如果 % 左边的操作数是负数,则模除的结果为负数或零。
            */
            /*
            -12 % -8 = -4; 
            12 % -8 =  4;
            -12 % 8 = -4;
            */
        </script>
    </body>
    
    </html>
    

    执行效果图:
    在这里插入图片描述
    欢迎小伙伴一起交流探讨,欢饮大佬指导!加油!

    展开全文
  • 转载于:https://www.cnblogs.com/liu-web-bew/p/9237067.html

    转载于:https://www.cnblogs.com/liu-web-bew/p/9237067.html

    展开全文
  • 1、最简单的情况: template&lt;class T&gt;...缺点是不能够处理不同类型数据,例如Add(100, 100.0f); 2、第二种情况: template&lt;typename T1, typename T2&gt; T1...

    1、最简单的情况:

    template<class T>  
    T Add(const T& a, const T& b)  
    {  
        return a + b;  
    }  

    缺点是不能够处理不同类型的数据,例如Add(100, 100.0f);

    2、第二种情况:

    template<typename T1, typename T2>  
    T1 Add1(T1 lhs, T2 rhs)  
    {  
        return lhs + rhs;  
    }  

    这种情况下,能够处理不同类型的数据,但是有些情况下有些数据精度会丢失,例如:Add(100, 100.1f)

    3、第三种情况:

    这种是根据第二种情况的改良,因为第二种会丢失数据精度主要是因为无法判断两个数据类型的精度,从而确定返回值的类型,利用模板trait技巧,我们可以实现。

    在写代码之前我们需要先了解typename作用:(1)标识一个模板参数类型(2)表示后面一个是一个类型名

    template<bool T,class T1,class T2>
    class ReturnTypeFun;
    
    template<class T1,class T2>
    class ReturnTypeFun<true,T1,T2>
    {
    public:
    	typedef T1 ReturnType;
    };
    
    template<class T1, class T2>
    class ReturnTypeFun<false, T1, T2>
    {
    public:
    	typedef T2 ReturnType;
    };
    
    template<typename T1,typename T2>
    class ReturnValueType
    {
    public:
    	//注意:此处sizeof比较大小需要加括号
    	typedef typename ReturnTypeFun<(sizeof(T1) > sizeof(T2)), T1, T2 > ::ReturnType ReturnType;
    };
    //因为int和float类型所占的字节相同,所以无法通过比较大小来判断类型的精度,需要偏特化 
    template<>
    class ReturnValueType<int, float>
    {
    public:
    	typedef float ReturnType;
    };
    
    template<>
    class ReturnValueType<float, int>
    {
    public:
    	typedef float ReturnType;
    };
    
    template<class T1,class T2>
    typename ReturnValueType<T1, T2>::ReturnType Add(T1 left, T2 right)
    {
    	return left + right;
    }

    T::iterator这种名称,由于iterator具体是类型还是成员变量取决于T的类型实现,所以当我们知道T::iterator是个类型名称时,如果我们要使用这个类型名,前面必须要加typename.

    展开全文
  • 注意: 只要是字符串在和任意数据类型相加+的运算,都是字符串拼接 例: console.log('5' + '3'); //53 console.log('5' + 3); //53 console.log('哈哈' + '5abc'); //哈哈5abc console.log('哈哈' + NaN); //...

    一、字符串的 + 运算

    注意: 只要是字符串在和任意数据类型做相加+的运算,都是字符串拼接

    例:

    console.log('5' + '3'); //53
    console.log('5' + 3); //53
    console.log('哈哈' + '5abc'); //哈哈5abc
    console.log('哈哈' + NaN); //哈哈NaN
    console.log('哈哈' + true); //哈哈true
    console.log('哈哈' + undefined); //哈哈undefined
    console.log('哈哈' + null); //哈哈null

    二、字符串的其他数学运算

    字符串类型的数据:在进行数学运算(-  *  /  %)时,会先将自身隐式转换(Number)成数值类型再进行计算

    例:

    console.log('5' - '3'); //2
    console.log('5' - 3); //2
    console.log('5' * 3); //15
    console.log('5' / 3); //1.6666666666666667
    console.log('5' % 3); //2

    三、NAN的数学运算

    任意数据类型和NaN做数学运算,结果都是NaN,除了与字符串的 + 运算

    例:

    console.log(NAN + 1); // NAN
    console.log(NAN - 1); // NAN
    console.log(NAN * 1); // NAN
    console.log(NAN / 1); // NAN
    console.log(NAN % 1); // NAN
    console.log(NAN + true); // NAN
    console.log(NAN + null); // NAN
    console.log(NAN + undefined); // NAN
    console.log(NAN + '123'); // NAN123

    四、undefined的数学运算

    未定义类型的数据:在进行数学运算(+ - * / %)时,会先将自身隐式转换(Number)成数值类型再进行计算

    例:

    console.log(undefined + undefined); //NaN
    console.log(undefined + 1); //NaN
    console.log(undefined + '5' + '哈哈'); //'undefined5哈哈'

    五、null的数学运算

    空类型的数据:在进行数学运算(+ - * / %)时,会先将自身隐式转换(Number)成数值 类型再进行计算

    例:

    console.log(null + true); //1
    console.log(null + 5); //5
    console.log('null' + (null - 3) + undefined); //null-3undefined

    六、关系运算

    任意数据类型在进行关系运算时,会先将自身隐式转换(Number)成数值,在进行比较字符串与字符串之间的比较< > <= >=,比较的是ascii码,一位一位的去比

    例:

    console.log(5 > 3); //true
    console.log(5 > '3'); //true
    console.log('5' < true); //false
    console.log(5 > '6哈哈'); //false
    console.log('a' < 'ab'); //true
    console.log('ac' > 'ab'); //true
    console.log('abcdefg' < 'bz'); //true
    console.log(NaN < NaN) // false
    console.log('100' < 'a'); //true
    console.log('5' == 5); //true
    console.log(1 == true); //true
    console.log(1 === true); //false
    console.log(0 == false); //true
    console.log(null < 1); // true

    也存在一些特殊,例如:

    console.log(null == 0); //false
    console.log(null == ' '); //false
    console.log(null == ''); //false
    console.log(null == false); //false
    console.log(null == undefined); //true

     

    展开全文
  • java中的double 类型数据相加问题

    千次阅读 2018-06-08 17:20:04
    问题描述:比如说 double a=3.0 double b=4.0 我 把a+b用 system.out.println输出 得到7.000000000000000006 解决方法:做float或double运算的时候 建议使用BigDecimal 来处理原因:这种情况是因为我们的数据在计算...
  • 初一看这个标题,你可能有一点疑问:这两个能相加吗? 答案看看效果: 看到这样的运行效果,我...“向上兼容”--即:不同数据类型的数据参与运算,数据类型要强制转换,转换的方向是 (unsigned)char,(unsigned)...
  • 优先级 byte < short < char < int <...强制类型转换时俩个short类型相加会得到int类型 所以short s1=1; s1=s1+1;程序会报错,+=进行了特殊处理,所以s1+=1;能够通过。 优先级 ...
  • <br />不同数据类型间混合运算的转换规则 不同数据类型的数据进行预算时,必须先转换成同一数据类型,然后才能进行运算。转换的规则如下图所示: 图中横向向左的箭头表示必定的转换,如字符数据必须...
  • 1、原码:一个数的原码(原始的二...只要符号还原即可,但当两个正数相减或不同符号数相加时,必须比较两个数哪个绝对值大,才能决定谁减谁,才能确定结果是正还是负,所以原码不便于加减运算。2、反码:对于正数,反...
  • 点击蓝字 关注我们上一期我们提到变量并...01数据类型python中主要的数据类型有:整数(int),浮点数(float),布尔(bool),字符串(str),列表(list),字典(dic)。例子:a=1(整数)b=1.23(浮点数)c=True(布尔)d="hello"(...
  • java 数据相加--泛型接口的实现

    千次阅读 2018-09-26 16:10:39
    题目要求:数据往往具有相加的功能,但是对于不同具体类型相加的含义有所不同,比如复数的相加的结果依然是一个复数,其实部为两个实部之和、虚部为两个虚部之和。而圆相加的结果依然是圆,其圆心为两个圆心的中点...
  • 1、隐式类型转换:转换是由编译系统自动完成的,用户不需干预。这种转换称为隐式类型转换。例如 int i=6; i=7.5+i; 编译系统对7.5是作为double...2、显式类型转换:程序人员在程序中指定将一种指定的数据转换成
  • 不同类型数据进行运算

    千次阅读 2017-09-28 16:54:06
    今天同学在笔试中遇到一个问题一个无符号的数加一个有符号的负数最后的结果是什么?...}问的其实就是有符号的和无符号的相加最终的类型是什么类型? c++提供了一个叫t#include 用于查看数据的内型头文件 具
  • 数据类型转换

    2020-07-17 15:11:02
    不同的基本数据类型转换 在计算数据的时候,往往会有不同数据类型进行转换,不同数据类型计算的时候就会发生整型提升,即所占字节数小的会提成成所占字节数大的和精度小的会提升成精度大的。 整形数据类型之间的...
  • C语言 数据类型

    2020-07-20 20:29:42
    1.C语言中的数据类型 ...不同类型相加减向高精度的转换。 1.基本类型(整形数、浮点数) 1)整数类型:int,short,long,double,float,char 1个字节=1byte = 8bit char/unsigned char 占1个字节 (字符

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 550
精华内容 220
关键字:

不同数据类型相加