Heim >类库下载 >PHP类库 >Aufgrund der Genauigkeit der PHP-Gleitkommaberechnungen liegt der Bestellwert häufig unter 1 Cent.

Aufgrund der Genauigkeit der PHP-Gleitkommaberechnungen liegt der Bestellwert häufig unter 1 Cent.

高洛峰
高洛峰Original
2016-10-10 11:24:151422Durchsuche

Aufgrund der Genauigkeit der PHP-Gleitkommaberechnungen ist der Bestellbetrag oft 1 Cent niedriger als der Bestellbetrag

Kürzlich bin ich auf ein seltsames Problem gestoßen. Bei Bestellungen, die über WeChat im Einkaufszentrum bezahlt wurden, betrug der Betrag oft 1 Cent weniger. Nach der Untersuchung wurde es durch PHP Float verursacht. Das Problem der Punktarithmetik wird durch die Genauigkeit der PHP-Gleitkommaarithmetik verursacht. Bolg hat eine detaillierte Erklärung. http://www.laruence.com/2013/03/26/2884.html,

Wenn Dezimalzahlen im Binärformat ausgedrückt werden, ist 0,58 ein unendlicher Wert im Binärformat


In Float umwandeln Punkte (64-Bit-Doppelgenauigkeit)
0.58的二进制表示基本上(52位)是: 0010100011110101110000101000111101011100001010001111
0.57的二进制表示基本上(52位)是: 0010001111010111000010100011110101110000101000111101

0.58 -> 0.57999999999999996
0.57 -> 0.56999999999999995
Lösung:
0.58*100 = 57.999999999 
(int)(0.58*100) = 57

(int)((0.58*1000)/10) = 58

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:PHP-TeufelstrainingNächster Artikel:PHP-Teufelstraining

In Verbindung stehende Artikel

Mehr sehen