Maison  >  Questions et réponses  >  le corps du texte

PHP小数点最后一位加1、减1

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

1、155.055
2、122.196
3、0.9631

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

1、155.056
2、122.197
3、0.9632

PHP中文网PHP中文网2772 Il y a quelques jours1506

répondre à tous(3)je répondrai

  • 高洛峰

    高洛峰2017-04-10 17:33:32

    $num =12.2346;
    $tmp = explode('.',$num);
    $dec = end($tmp);
    $count = strlen($dec);
    $p= pow(0.1,$count);
    $result = $num+$p;
    echo($result);
    

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

    répondre
    0
  • PHPz

    PHPz2017-04-10 17:33:32

    都存成整数吧,然后存储一个小数点的位置。
    因为 float 型 还是不能准确的表示 0.1 0.01 0.001 。。。等数据的,多次添加删除之后会有累计误差,甚至加了跟没加一样。
    比如

    0.1+0.2 == 0.30000000000000004

    répondre
    0
  • 黄舟

    黄舟2017-04-10 17:33:32

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

    répondre
    0
  • Annulerrépondre