Inhaltsverzeichnis
回复讨论(解决方案)
Heim Backend-Entwicklung PHP-Tutorial php round的问题(取精度结果不正确)

php round的问题(取精度结果不正确)

Jun 23, 2016 pm 02:21 PM

php

发现使用PHP round函数进行小数控制的时候,有问题,如下所示:

round(9999999999999.99, 2) 期望值:9999999999999.99;实际值:10000000000000
round(1111111111111.11, 2) 期望值:1111111111111.11;实际值:1111111111111.1

请问有没有遇到类似问题的?这个是PHP已知缺陷吗?没有看到官方发布的相关说明。

注:我机器上PHP版本是5.3.6

回复讨论(解决方案)

round函数没有问题

$a = 1111111111111.11;echo $a;
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

参考php关于浮点类型精度的介绍吧
http://www.php.net/manual/zh/language.types.float.php

round函数没有问题

$a = 1111111111111.11;echo $a;
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

参考php关于浮点类型精度的介绍吧
http://www.php.net/manual/zh/language.types.float.php

$a = 1111111111111.11;
echo $a;
这段代码说明了什么?并没有调用round?


round函数没有问题

$a = 1111111111111.11;echo $a;
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

参考php关于浮点类型精度的介绍吧
http://www.php.net/manual/zh/language.types.float.php

$a = 1111111111111.11;
echo $a;
这段代码说明了什么?并没有调用round?

输出结果是1111111111111.1,说明脚本编译期间就将1111111111111.11转换成1111111111111.1了。
可能是php的浮点类型由于精度的原因不能存储1111111111111.11。
你没有看php官方的说明吗?" 所以永远不要相信浮点数结果精确到了最后一位"



round函数没有问题

$a = 1111111111111.11;echo $a;
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

参考php关于浮点类型精度的介绍吧
http://www.php.net/manual/zh/language.types.float.php

$a = 1111111111111.11;
echo $a;
这段代码说明了什么?并没有调用round?

输出结果是1111111111111.1,说明脚本编译期间就将1111111111111.11转换成1111111111111.1了。
可能是php的浮点类型由于精度的原因不能存储1111111111111.11。
你没有看php官方的说明吗?" 所以永远不要相信浮点数结果精确到了最后一位"


那想要完整显示我例举的数字应该如何处理?




round函数没有问题

$a = 1111111111111.11;echo $a;
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

参考php关于浮点类型精度的介绍吧
http://www.php.net/manual/zh/language.types.float.php

$a = 1111111111111.11;
echo $a;
这段代码说明了什么?并没有调用round?

输出结果是1111111111111.1,说明脚本编译期间就将1111111111111.11转换成1111111111111.1了。
可能是php的浮点类型由于精度的原因不能存储1111111111111.11。
你没有看php官方的说明吗?" 所以永远不要相信浮点数结果精确到了最后一位"


那想要完整显示我例举的数字应该如何处理?
你还是没有看官方的说明,里面说的很清楚了,自己找答案去吧





round函数没有问题

$a = 1111111111111.11;echo $a;
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

参考php关于浮点类型精度的介绍吧
http://www.php.net/manual/zh/language.types.float.php

$a = 1111111111111.11;
echo $a;
这段代码说明了什么?并没有调用round?

输出结果是1111111111111.1,说明脚本编译期间就将1111111111111.11转换成1111111111111.1了。
可能是php的浮点类型由于精度的原因不能存储1111111111111.11。
你没有看php官方的说明吗?" 所以永远不要相信浮点数结果精确到了最后一位"


那想要完整显示我例举的数字应该如何处理?
你还是没有看官方的说明,里面说的很清楚了,自己找答案去吧

OK,thanks

浮点数只能保存有限数位的值

php 已经提供了高精度数学函数库 BC、GMP

Erklärung dieser Website
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

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

11 beste PHP -URL -Shortener -Skripte (kostenlos und Premium) 11 beste PHP -URL -Shortener -Skripte (kostenlos und Premium) Mar 03, 2025 am 10:49 AM

11 beste PHP -URL -Shortener -Skripte (kostenlos und Premium)

Arbeiten mit Flash -Sitzungsdaten in Laravel Arbeiten mit Flash -Sitzungsdaten in Laravel Mar 12, 2025 pm 05:08 PM

Arbeiten mit Flash -Sitzungsdaten in Laravel

Erstellen Sie eine React -App mit einem Laravel -Back -Ende: Teil 2, reagieren Erstellen Sie eine React -App mit einem Laravel -Back -Ende: Teil 2, reagieren Mar 04, 2025 am 09:33 AM

Erstellen Sie eine React -App mit einem Laravel -Back -Ende: Teil 2, reagieren

Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests Mar 12, 2025 pm 05:09 PM

Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests

Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs Mar 14, 2025 am 11:42 AM

Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs

12 Beste PHP -Chat -Skripte auf Codecanyon 12 Beste PHP -Chat -Skripte auf Codecanyon Mar 13, 2025 pm 12:08 PM

12 Beste PHP -Chat -Skripte auf Codecanyon

Benachrichtigungen in Laravel Benachrichtigungen in Laravel Mar 04, 2025 am 09:22 AM

Benachrichtigungen in Laravel

Ankündigung von 2025 PHP Situation Survey Ankündigung von 2025 PHP Situation Survey Mar 03, 2025 pm 04:20 PM

Ankündigung von 2025 PHP Situation Survey

See all articles