php 小数末尾进1,PHP小数点最后一位加1、减1

比如我有几个数字(小数点后面的位数不固定):

1、155.055

2、122.196

3、0.9631

我怎么做才能让这些数字的小数点最后一位+1,或者-1?比如+1的话希望得到:

1、155.056

2、122.197

3、0.9632

回复内容:

比如我有几个数字(小数点后面的位数不固定):

1、155.055

2、122.196

3、0.9631

我怎么做才能让这些数字的小数点最后一位+1,或者-1?比如+1的话希望得到:

1、155.056

2、122.197

3、0.9632

$num =12.2346;

$tmp = explode('.',$num);

$dec = end($tmp);

$count = strlen($dec);

$p= pow(0.1,$count);

$result = $num+$p;

echo($result);

自己改成函数吧, 有些地方还要加些判断,

都存成整数吧,然后存储一个小数点的位置。

因为 float 型 还是不能准确的表示 0.1 0.01 0.001 。。。等数据的,多次添加删除之后会有累计误差,甚至加了跟没加一样。

比如

0.1+0.2 == 0.30000000000000004

$n = 10.123;

$fix = floatval(pow(10, strlen(explode('.', strval($n))[1])));

$n = ($n*$fix + 1)/$fix;

相关标签:php

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值