int i = (int)((Convert.ToSingle("1.3")) * 10);
为什么i等于12
为什么i等于12
解决方案 »
- form2窗体如何刷新form1窗体datagridview呢?
- lock对性能有影响,那如何让多线程尽可能并发的输出不重复的数字呢?
- 求一个C#在SQL2000中上传图片和下载图片的程序
- try catch处理异常,已经知道会有NULL异常发生,现在只想处理除NULL异常外的其它异常,也就是对NULL异常视而不见,在catch块中要怎样写?
- C#写的控件让VB6.0调用的程序.能否在没有装dotnetfx的机器上使用
- 求.net2005简体中文语言包
- 为什么string转化为double或float原来的1.34变化为1.34000000001了呢?
- 0:00:10 这样的时间 怎么换算成 多少秒
- CSDN中的人注意一下
- 如何继承一个datagrid并扩展它的功能?
- 谁有现成的进度条ProgressBar的例子,或者是哪里有下载的...........
- c# Replace怎样用textbox的字符替换指定tet文件中指定的字符
1.3*10有可能等于 12.9999999999999x 或者13.0000000000000x 当然,这个结果是固定的,我只是想说浮点运算的结果不是精确的。(int)强制转换成int,这个是强制截位的转换,说白了就是直接保留整数部分,小数部分直接扔掉。总结一句,就是浮点数做运算得到的不是精确结果,只是近似结果。
但是
float f = Convert.ToSingle(str);
f = f * 10;
int j = (int)f;
这样就可以得到1.3,请问为什么