php四舍五入保留两位小数,我要保留两位小数,怎样使数据不四舍五入?

用户投稿 157 0

关于“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】点解答对大家有用。

抱歉,评论功能暂时关闭!