关于“php_小数_不四舍五入”的问题,小编就整理了【2】个相关介绍“php_小数_不四舍五入”的解答:
我要保留两位小数,怎样使数据不四舍五入?理解提问者的意图,是想保留两位小数有效,且在第二位小数上不作四舍五入。首先要明白,如果遇到无理数,想取有效数字必须进行四舍五入。如果不想在小数点后第二位数字上做四舍五入,可以保留小数点后三位数字,在小数点后第3位数上做四舍五入。
保留有效数字的操作可以利用ROUND函数实现:
语法
ROUND(number, num_digits)
参数
number 必需。要四舍五入的数字。num_digits 必需。位数,按此位数对 number 参数进行四舍五入。如果 num_digits 大于 0(零),则将数字四舍五入到指定的小数位。如果 num_digits 等于 0,则将数字四舍五入到最接近的整数。如果 num_digits 小于 0,则在小数点左侧前几位进行四舍五入。以下为保留两位有效数字的公式(Eq.1):
=ROUND(A1, 2-(INT(LOG(A1+0.1^6))+1))
其中:
A1
为要处理的数字;
INT(LOG(A1+0.1^6))+1
是该数字的整数部分的位数;
+0.1^6
是为了保证要处理的数字为零时LOG的计算有意义,不必要。该公式可以简化为(Eq.2)
=ROUND(A1, 1-INT(LOG(A1+0.1^6))
写成Eq.1的形式主要是为了突出要保留的是2位有效数字。如果要保留3位有效数字,可以将公式改写为:
=ROUND(A1, 3-(INT(LOG(A1+0.1^6))+1))
以下是实际效果,题主可以自己尝试一下:1、保留2位有效数字=ROUND(A1, 2-(INT(LOG(A1+0.1^6))+1))A1 = 123.4,输出 = 120A1 = 12.34,输出 = 12A1 = 1.234,输出 = 1.2A1 = 0.1234,输出 = 0.122、保留3位有效数字=ROUND(A1, 3-(INT(LOG(A1+0.1^6))+1))A1 = 123.4,输出 = 123A1 = 12.34,输出 = 12.3A1 = 1.234,输出 = 1.23A1 = 0.1234,输出 = 0.123注意在Excel中设置相应的小数位数以显示结果,不过即使不设置,计算结果也是确实的保留有效数字之后的值(可以将计算结果粘贴到其他地方进行验证)。
VB编程怎么控制小数点位数又不四舍五入?Dim s As String, pos As Integer
Dim v As Double, a As Double, b As Double
s = "123.4567" '字符串的123.4567
v = Val(s) '数值123.4567
'根据字符串只截取三位小数,第四位不四舍五入
pos = InStr(s, ".")
a = Val(Left(s, pos + 3)) '从左边取到小数点位置+3个字符,转换为数值
b = Int(v * 1000) / 1000 '把123.4567扩大1000倍后取整为123456.7再除1000
Print a, b
到此,以上就是小编对于“php_小数_不四舍五入”的问题就介绍到这了,希望介绍关于“php_小数_不四舍五入”的【2】点解答对大家有用。