精华内容
下载资源
问答
  • C# double float int string 与 byte数组 相互转化 在做通信编程的时候,数据发送多采用串行发送方法,实际处理的时候多是以字节为单位进行处理的。在C/C++中 多字节变量与Byte进行转化时候比较方便 采用UNION即可 ...

     C# double float int string 与 byte数组 相互转化


    在做通信编程的时候,数据发送多采用串行发送方法,实际处理的时候多是以字节为单位进行处理的。在C/C++中 多字节变量与Byte进行转化时候比较方便 采用UNION即可
    废话少说看示例:
    typedef union
    {
    double data_df;
    byte     data_b[8];
    }DoubleYByte;
    本示例实现了double与byte的相互转化
    typedef union
    {
    float data_f;
    byte data_b[4];
    }FloatYByte;
    本示例实现了float与byte的相互转化
    其他的数据类型short int long等都可以采用上述示例转换 在C/C++中可以很容易的实现


    但是在上位机编程中,采用C#编程就比较麻烦,因为没有union可用
    但是C#提供一个类system.BitConverter来专门解决这种转换问题,该类如下显示
    方法
    DoubleToInt64Bits    将指定的双精度浮点数转换为 64 位有符号整数。
    GetBytes    已重载。 将指定的数据转换为字节数组。
    Int64BitsToDouble    将指定的 64 位有符号整数转换成双精度浮点数。
    ToBoolean    返回由字节数组中指定位置的一个字节转换来的布尔值。
    ToChar    返回由字节数组中指定位置的两个字节转换来的 Unicode 字符。
    ToDouble    返回由字节数组中指定位置的八个字节转换来的双精度浮点数。
    ToInt16    返回由字节数组中指定位置的两个字节转换来的 16 位有符号整数。
    ToInt32    返回由字节数组中指定位置的四个字节转换来的 32 位有符号整数。
    ToInt64    返回由字节数组中指定位置的八个字节转换来的 64 位有符号整数。
    ToSingle    返回由字节数组中指定位置的四个字节转换来的单精度浮点数。
    ToString    已重载。 将指定的字节数组的每个元素的数值转换为它的等效十六进制字符串表示形式。
    ToUInt16    返回由字节数组中指定位置的两个字节转换来的 16 位无符号整数。
    ToUInt32    返回由字节数组中指定位置的四个字节转换来的 32 位无符号整数。
    ToUInt64    返回由字节数组中指定位置的八个字节转换来的 64 位无符号整数。
    若想把float类型转化为byte示例如下:
    float a=1.23;
    byte[] b=BitConverter.GetBytes(a);
    若想把变量b重新转化为float类型可以使用toSingle方法,示例如下:
    float c=BitConverter.ToSingle(b,0);//应为a在b中起始字节为0,故第二个参数为0


    还有就是string与byte[]的变换 如果知道就很简单
         byte[] byteArray = System.Text.Encoding.Default.GetBytes(  str  );
         string str = System.Text.Encoding.Default.GetString( byteArray );
    在System.Text.Encoding class中,还有很多其它有用的方法,像GetChars,从一个byte[]转成一个char[],等等,还有其它编码方式的,如System.Text.UTF8Encoding class、System.Text.UnicodeEncoding class等,根据不同需要可选不同的class。 具体请参考MSDN


    各位大侠,看完之后应该对通信编程中数据类型转化问题应该不会头痛了吧

    展开全文
  • Java double floatint相乘出错问题

    万次阅读 2017-06-07 14:02:50
    public class double_int { public static void main(String[] args) { double d = 0.06; float f = (float) d; int n = 750; int ref = (int) (n * (1 + f)); System.out.println(ref)

    看下面的一段代码的运行:

    public class double_int {
    	public static void main(String[] args) {
    		double d = 0.06;
    		float f = (float) d;		
    		int n = 750;
    
    		int ref = (int) (n * (1 + f));
    		System.out.println(ref);
    
    	}
    
    }

    输出结果很意外的不是 795而是794

    public class double_int {
    	public static void main(String[] args) {
    		double d = 0.16;
    		float f = (float) d;		
    		int n = 750;
    
    		int ref = (int) (n * (1 + d));
    		System.out.println(ref);
    
    	}
    
    }
    输出结果很意外的不是870而是869

    解决方法

    import java.math.BigDecimal;
    
    public class double_int_float {
    
    	public static void main(String[] args) {
    		double d = 0.06;
    		float f = (float) d;
    		int n = 750;
    
    		BigDecimal a1 = new BigDecimal(Double.toString((d + 1)));
    		BigDecimal b1 = new BigDecimal(Double.toString(n));
    		int result = a1.multiply(b1).intValue();// 相乘结果
    		System.out.println(result);
    
    	}
    
    }
    


    展开全文
  • int double float大小范围

    千次阅读 2017-08-17 00:02:57
    int 整型double 双精度浮点float 单精度浮点int 字节4 数值范围:-2147483648~+2147483647float 字节4 数值范围 3.4×10^-38~3.4×10^38(一位小数)double 字节8 数值范围 1.7×10^-308~1.7×10^308(2位小数)
    原始博客:
    int 整型
    double 双精度浮点
    float  单精度浮点
    int 字节4  数值范围:-2147483648~+2147483647  有效数位 10 
    float 字节4 数值范围 -3.4×10^-38~3.4×10^38 有效数位 6~7
    double 字节8 数值范围 -1.7×10^-308~1.7×10^308 有效数位 6~7
    这篇博客当时引用时主要是找数值范围,但是最近有些同学问到有效数位,float double数值范围的一些问题,所以花了些时间修改一些

    int 整型

    double 双精度浮点

    float 单精度浮点

    int 字节4 数值范围:-2147483648~+2147483647

    float 字节4 数值范围 -3.4×10^-38~3.4×10^38 有效数位 7

    double 字节8 数值范围 -1.7×10^-308~1.7×10^308 有效数位 15

    搜索过程中发现该博文写的比较好,还包括了其他类型的说明并写了段代码示例,链接如下——

    C中 int和float均为四字节,为啥表示数值范围不同?

    引用:

    [1] 微软官网对于date type的定义

    [2] C plusplus官网对float的说明

    展开全文
  • int num = 10/4; float num2 = 10/4; double num3 = 10.0/4.0; System.out.println(num); System.out.println(num2); System.out.println(num3); ...
                int num = 10/4;
            float num2 = 10/4;
            double num3 = 10.0/4.0;
            System.out.println(num);
            System.out.println(num2);
            System.out.println(num3);    
    结果
    2
    2.0
    2.5

    当你不声明的时候,默认小数都用double来表示,所以如果要用float的话,则应该在其后加上f,否则编译不通过

     

    解析:

    10/4是整型计算,结果取整.所以10/4=2  ,x=2  ,由于x是浮点型, 所以 x值为2.0    

    10/4 = 2 这个是默认定义的值的类型是int类型导致的。
    如:5/2;此时结果为:2,因为5和2都是默认的int类型。 (在JAVA中两个int型的数相除,默认取整,小数部分直接被舍去)
    如果不想得到整形,那么必须定义分子和分母都是double类型才可以。

    转载于:https://www.cnblogs.com/wskb/p/10958802.html

    展开全文
  • CString string char * int double float 之间转化 将每种转化 都有不同的实现方法 以及相关知识 进行总结
  • float double int long long int的精度

    千次阅读 2017-11-07 20:36:59
    int 最大值 2147483647 (最大)有效数字位数(9-10) unsigned int 最大值 4294967295 (最大)有效数字位数(9-10) long long int 最大值 9223372036854775807 (最大)有效数字位数(18-19) ...
  • C语言 double int float 运算

    千次阅读 2018-10-31 10:32:01
    原创   #include <stdio.h> #include <string.h> #include <stdlib.h> #include <stdbool.h&... int s1 = 3/2;... int s2 = 9/3.2; =2.... double s3...
  • java中 float int double三个有什么区别

    千次阅读 2019-08-24 17:22:29
    int 是整型 如 12 8 9 45 例如:float a=1.3; 会编译报错,正确的写法 float a = (float)1.3;或者float a = 1.3f;(f或F都可以不区分大小写) ...Intfloat的区别 前者是整型,后者可以有小数点 int 与doubl...
  • java 示例: java 中 浮点数默认是 double 类型的,如果想把 浮点数赋值给 float 需要 在小数后面 加 f例如:float a=1.3; public class TestMap { public static void main(String[] args) throws Exception{ ...
  • Java int string double float之间类型转换

    千次阅读 2017-04-06 23:10:10
    1、int和string int i = Integer.parseInt("string") int i = Integer.valueOf("string").intValue(); String s = String.valueOf(i); String s = Integer.toString(i);...2、string和double d
  • floatdoubleint 的四舍五入

    千次阅读 2019-05-01 17:20:36
    //取整形部分,floatdouble会进行四舍五入 mid=-1.855; 像这种情况最好用printf输出 printf("%.4lf",a); 四舍五入(本来就是用于正数;负数根据要求转成正数再进行运算,再转回负数):保留整数 int a = b...
  • 在MFC程序中,可以使用Format方法方便的实现intfloatdouble等数字类型转换为CString字符串。以下是CString的Format支持的格式说明: %c 单个字符 %d 十进制整数(int) %ld 十进制整数(long) %f 十进制浮点数...
  • floatfloat f=3.4是否正确 不正确。精度不准确,应该用强制类型转换,... int 转成 long 系统自动作没有问题,因为后者精度更高 double 转成 float 就不能自动做了,所以后面的加上个 f; 黑色头发 http://h...
  • doubleValue; floatValue; intValue; integerValue
  • 首先我们先了解一下基本数据类型 基本数据类型有八种 bit:一个字节的数据类型(8位),范围是-128到127。 short:两个字节,占16位。范围是-(2的15次方)到(2的15)-1一般不用这种数据类型。...int类型的数据...
  • #include using namespace std; int main() { bool w = 1;...double x = 1; int y = 1; float z = 1; if (x == y&&y==z&&z==x&&y==w&&z==w&&x==w) cout cout return 0; } (欢迎指错~)
  • 在做项目时遇到了需要把年份(String)转换为int类型,对年份进行比较,顺便提取为方法,保存下来方便以后使用。 public class ConvertUtil { //把String转化为float public static float convertToFloat(String...
  • doubleint

    2020-10-20 21:35:30
    doubleint不能混用! 结果为小数,必须用double,否则一直输出0,真的折磨人! #include<iostream> #include<vector> #include<algorithm> #include<math.h> using namespace std; float ...
  • 特殊(intfloat)总结 定义 1. 无符号数和有符号数 核心思想:位模式不变 方法一:先转为二进制串,再分别按位串转无符号数(或有符号数)的定义转化 方法二:采用公式直接计算 2. 短字长数和长字长数(如...
  • int float double BigDecimal

    2017-04-05 15:42:41
    floatdouble的区别单精度浮点数(float)与双精度浮点数(double)的区别如下:(1)在内存中占有的字节数不同单精度浮点数在机内占4个字节双精度浮点数在机内占8个字节 (2)有效数字位数不同单精度浮点数有效...
  • 下表列出了printf和scanf对于各种格式说明符可以接受的参数类型。 格式 printf scanf %c int char * %d, %i ...int ...int * ...unsigned int ...unsigned int *
  • 一、string转化为数字 1.使用stoi #include #include using namespace std; int main() { string str = "123"; int a = stoi(str); cout ; str = "123.44";... double b = stod(str); co
  • QString 转 doublefloatint、 char*

    千次阅读 2014-12-05 15:53:02
    类型转换 把QString转换为 double类型 ...double val=str.toDouble(); //val=123.45 方法2.很适合科学计数法形式转换 bool ok; double d; d=QString("1234.56e-02").toDouble(&ok); //ok=true;d
  • 多字节数据类型数组(double,float,int,long)数组数组和byte数组的相互转换都可以基于java.nio.Buffer实现. java.nio.DoubleBuffer对应double[], java.nio.FloatBuffer对应float[], java.nio.LongBuffer对应long[]...
  • 比较简单实用的一个函数,通过判断...float chars2float(char str[]) { float number0=0,number1=0; int flag=0; for(int i=0;i<10;i++) { if(str[i]=='.') flag=1; else if(str[i]>='0'&&...
  • int float double型 printf输出规则 int floatdouble类型有的初学者分不清在在printf输出时用什么占位符,下面我简单介绍一下这些。 1.intint为“整数类型”,占用4个字节存储空间,是程序中最常见的一个类型...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 36,110
精华内容 14,444
关键字:

doublefloatint