如何将float以保留两位小数
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/09 09:41:41
如何将float以保留两位小数
如何将float以保留两位小数
如何将float以保留两位小数
你要知道,float是浮点数,无法精确表示一个数值.所以你根本不可能在float内部精确表示一些小数,比如0.7或者你说的0.32.
有兴趣的话可以研究下IEEE754标准,这个标准规定了电脑中浮点数如何存储,看完了你就会明白,这些小数在电脑中保存的时候都是转换成二进制保存的,而0.32和0.7这种小数,在十进制下是有限小数,但转换成二进制之后就是无限循环小数了,所以是无法精确用float表示的.你只能在float内部保存一个很接近的近似值.
在代码中也不应该写:if (a == 0.7) 这种语句,因为浮点数a是无法精确表示0.7的,应该写成:
if (Math.abs(a - 0.7) < xxx) 其中xxx是一个足够小的数.
当然你在输出的时候是可以将这个float a输出成两位小数的,比如a.toString("F2");这样输出的时候会将a的值十进制小数点后2位之后进行四舍五入然后输出,但是a本身的值仍然是无法保证精确只有两位小数的.
-------------
补充:我知道你是要从string转float,不过原因我已经说了,这是float内部存储方式的问题,不是转换的问题,浮点数本来就无法精确存储一些小数,这个是没办法的.这也就是为什么许多涉及到金融业务的程序都采用的是定点数来保存金额等数字,而不是采用浮点数的原因.
如何将float以保留两位小数
如何将以元为单位自动变为以万单位,小数保留二位
保留两位小数
pascal如何将一个实数保留两位小数付给一个字符串
C#如何将float类型数值保留两位小数?float a=Convert.ToSingle(txtNum.Text);如果txtNum.Text输入0.32 转化后输出的结果为:0.31999999284744263如何才能想要的数值0.32呢?asdf_12346:我的意思不是要转换成string格式
编写保留两位小数的fun函数编一个函数fun,函数的功能是使实型数保留2位小数,并对第三位小数四舍五入(规定实数为正数)float fun ( float h ){}
9.965保留两位小数
9.9736保留两位小数
1.2857保留两位小数
2.9152保留两位小数
保留两位小数0.19625
99.999保留两位小数
90.999保留两位小数
怎么保留两位小数
3.2525保留两位小数
0.93456 保留两位小数
8.5945保留两位小数
保留两位小数 急