int、double类型计算问题
2009-09-23 15:45
537 查看
使用两个int变量计算的结果默认是int型的值,13883 / 100 = 138
如果要获取double类型的结果,两个计算数必须有一个是double类型,((double)13883) / 100 = 138.83
注:
数学计算中,必然的结果,在计算机中不一定正确;
计算机计算中,首先会考虑两个变量的类型,然后再计算结果,并根据类型要求,保存计算结果
========================================================================================
上述方法是在金额转换中出现的,数据以元为单位的金额转换成以分为单位的金额。
在大多数情况下,转换是正常的;但是,计算机中,double类型的数据本身就是近似保存,还是有可能出现转换前后不一致的情况。
e.g.字符串“36.40”使用上述方法进行转换后的结果是“3639”
因此,为保证转换前后数据上的严格一致,应该把以元为单位的金额按照字符串来处理,即
1、无小数点时,直接添加“00”,得到以分为单位的金额
2、有小数点,且小数点后有两位以上数字时,取前两位数字,和整数部分拼接,得到以分为单位的金额
3、有小数点,且小数点后只有一位数字时,取这一位数字,和整数部分拼接,并在尾部添加“0”,得到以分为单位的金额
如果要获取double类型的结果,两个计算数必须有一个是double类型,((double)13883) / 100 = 138.83
注:
数学计算中,必然的结果,在计算机中不一定正确;
计算机计算中,首先会考虑两个变量的类型,然后再计算结果,并根据类型要求,保存计算结果
========================================================================================
上述方法是在金额转换中出现的,数据以元为单位的金额转换成以分为单位的金额。
在大多数情况下,转换是正常的;但是,计算机中,double类型的数据本身就是近似保存,还是有可能出现转换前后不一致的情况。
e.g.字符串“36.40”使用上述方法进行转换后的结果是“3639”
因此,为保证转换前后数据上的严格一致,应该把以元为单位的金额按照字符串来处理,即
1、无小数点时,直接添加“00”,得到以分为单位的金额
2、有小数点,且小数点后有两位以上数字时,取前两位数字,和整数部分拼接,得到以分为单位的金额
3、有小数点,且小数点后只有一位数字时,取这一位数字,和整数部分拼接,并在尾部添加“0”,得到以分为单位的金额
相关文章推荐
- Android 中使用IDE为Android Studio时候,后台类型从double 改成 int,但是客户端还是显示double问题(JAVA修改Model类型,但是无效)
- 经得起雷劈:关于double和int/long相互转换失去精度计算错误的问题
- iOS double类型精度问题以及计算问题
- MySQL varchar 类型转换为int/double 类型 并计算求和
- Java中double数据类型计算会损失精度问题
- 利用函数重载分别创建三个函数,分别是计算2个数的和,3个数的和,4个数的和/利用函数重载分别创建三个函数,分别计算int类型数组中最大值,stirng 类型数组中最长的字符串,double类型数组中最
- 图像处理中像素点的问题:double、long、unsigned、int、char类型数据所占字节数
- 解决double类型不能精确计算问题~
- 编写重载函数min(),分别计算int,double,float,long类型数组中的最小数
- 对于c语言int类型和float,以及double类型表示范围的计算
- java重double类型不能用来计算问题
- java问题总结之3--用非科学计数法输出int、float、double等类型数据
- 编写重载函数min(),分别计算int、double、float、long类型数组中的最小树
- java中double、float类型计算精度丢失问题
- Java中Double类型计算问题
- C/C++语言中计算int,float,double,char四种数据类型所能表示的数据范围
- double类型转int类型,精度丢失的问题
- java中,数值计算时的类型转换 ( 两个int类型相加,赋值给double )
- double类型计算精度确实问题
- [ JAVA编程 ] double类型计算精度丢失问题及解决方法