php round函数输出不对_Python 四舍五入函数 Round
生活随笔
收集整理的這篇文章主要介紹了
php round函数输出不对_Python 四舍五入函数 Round
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
小數(shù)位的四舍五入在項目中經(jīng)常用到。
你可能有注意到 round 函數(shù)不能真正做到四舍五入。
round() 函數(shù)作用就是,返回浮點數(shù)x的四舍五入值。
round( x [, n] )
簡單來說就是在浮點運算的時候丟精度。
這個與計算機系統(tǒng)的設(shè)計是有關(guān)系的,計算機是使用 2 進制進行計算的的,如果我們常用的數(shù)學(xué)計算或者科學(xué)計算,計算機是會丟精度的。
因此我們的解決方案其實非常簡單就是使用 Decimal 來進行數(shù)學(xué)計算。
浮點計算丟精度的問題不僅僅是 Python 會遇到的問題,Java 、 C/C++ 都會遇到這個問題。
可以考察下面的代碼:
print(round(2.3, 2))print(round(2.45, 1))
print(round(2.675, 2))
print(Decimal(1.325))
print(Context(prec=3, rounding=ROUND_HALF_UP).create_decimal('2.675'))
上面程序的輸出為:
2.32.5
2.67
1.3249999999999999555910790149937383830547332763671875
2.68
因此,在你需要進行浮點計算的時候,不要使用 Float 進行計算,你需要使用 Decimal 進行數(shù)學(xué)計算。
例如在 Java 中,我們會使用 BigDecimal 進行精確的科學(xué)計算。
總結(jié)
以上是生活随笔為你收集整理的php round函数输出不对_Python 四舍五入函数 Round的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 正在运行的程序不能拷贝_如何
- 下一篇: 用户解锁不存在_解锁手机有6种方法,这些