float,double和decimal类型

float:浮点型,含字节数为4,32bit,数值范围为-3.4E38~3.4E38(7个有效位)

double:双精度实型,含字节数为8,64bit数值范围-1.7E308~1.7E308(15个有效位)

decimal:数字型,128bit,不存在精度损失,常用于银行帐目计算。(28个有效位)

float f = 345.98756f;//结果显示为345.9876,只显示7个有效位,对最后一位数四舍五入。

double d=345.975423578631442d;//结果显示为345.975423578631,只显示15个有效位,对最后一位四舍五入。

注:float和double的相乘操作,数字溢出不会报错,会有精度的损失。

decimal dd=345.545454879.....//可以支持28位,对最后一位四舍五入。

注:当对decimal类型进行操作时,数值会因溢出而报错。

时间: 2024-12-10 22:19:45

float,double和decimal类型的相关文章

关于float /double、string类型的hash函数/hash表实现(转)

#include <ext/hash_map> #include <math.h> #include <stdio.h> using namespace std; #define FLT_EPSILON 1.192093e-007 #define DBL_EPSILON 2.2204460492503131e-016 #define FLOAT_EPSILON(a,b) ( a > b ? fabs(a) * FLT_EPSILON : fabs(b) * FLT

mysql中float、double、decimal三种类型,以及数值产生误差的原因

单精度浮点数用4字节(32bit)表示浮点数,采用IEEE754标准的计算机浮点数,在内部是用二进制表示的,如:7.22用32位二进制是表示不下的,所以就导致不精确了,存取会出现误差. mysql中float数据类型的问题总结: 对于单精度浮点数float:当数据范围在±131072(65536×2)以内的时候,float数据精度是正确的,但是超出这个范围的数据就不稳定. 建议:将float改成double或者decimal,两者的差别是double是双精度浮点计算,decimal是定点计算,会

float double decimal 类型

float:浮点型,含字节数为4,32bit,数值范围为-3.4E38~3.4E38(7个有效位) double:双精度实型,含字节数为8,64bit数值范围-1.7E308~1.7E308(15个有效位) decimal:数字型,128bit,不存在精度损失,常用于银行帐目计算.(28个有效位) float f = 345.98756f;//结果显示为345.9876,只显示7个有效位,对最后一位数四舍五入. double d=345.975423578631442d;//结果显示为345.9

MySQL中 DECIMAL FLOAT DOUBLE的区别

第一篇文章: MySQL中Decimal类型和Float Double等区别 MySQL中存在float,double等非标准数据类型,也有decimal这种标准数据类型. 其区别在于,float,double等非标准类型,在DB中保存的是近似值,而Decimal则以字符串的形式保存数值.float,double类型是可以存浮点数(即小数类型),但是float有个坏处,当你给定的数据是整数的时候,那么它就以整数给你处理.这样我们在存取货币值的时候自然遇到问题,我的default值为:0.00而实

C#中对于float,double,decimal的误解(转载)

浮点型 Name CTS Type Description Significant Figures Range (approximate) float System.Single 32-bit single-precision floating point 7 ±1.5 × 10−45 to ±3.4 × 1038 double System.Double 64-bit double-precision floating point 15/16 ±5.0 × 10 −324 to ±1.7 ×

mysql数据类型double和decimal区别详解

详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt336 实数是带有小数部分的数字.然而,它们不只是为了存储小数部分,也可以使用 DEClMAL 存储比 BIGINT还大的整数. MySQL 既支持精确类型,也支持不精确类型. FLOAT 和  DOUBLE 类型支持使用标准的浑点运算进行近似计算.如果需要知道浮点运算是 怎么计算的,则需要研究所使用的平台的浮点数的具体实现. DECIMAL 类型用于存储精确的小数.在 My

[C++] string与int, float, double相互转换

参考:http://blog.csdn.net/candadition/article/details/7342380 将string类型转换为int, float, double类型 主要通过以下几种方式: # 方法一: 使用stringstream stringstream在int或float类型转换为string类型的方法中已经介绍过, 这里也能用作将string类型转换为常用的数值类型. Demo: #include <iostream> #include <sstream>

解决 Entity Framework 6.0 decimal 类型精度问题

?  前言 本文主要解决 EF 中对于 MSSQL 数据库的 decimal 类型经度问题,经实验该问题仅在 CodeFirst 模式的情况下发生,话不多说直接看代码. 1.   假设我们有一张 Customer 数据表,主要探究:Longitude.Latitude.LonLatSum 这三个字段. 1)   结构如下: CREATE TABLE dbo.Customer ( Id int NOT NULL,                            --客户Id Name nva

decimal类型数据如何保留两位小数

日常开发中,decimal作为货币类型,经常会处理保留两位小数的问题. 本站整理两种,decimal类型保留两位小数的方法. 第一种: decimal d = 46.28111m;string res=d.ToString(“#0.00”); //结果=46.28 第二种: double d=45.123456;string res=double.Parse(String.Format(“{0:N}”, d)).ToString(); //结果=45.12 转载请注明:三只源码 » decima