Heim Web-Frontend js-Tutorial javascript中的float运算精度实例分析_javascript技巧

javascript中的float运算精度实例分析_javascript技巧

May 16, 2016 pm 06:20 PM
float

有人问到一个js问题:

复制代码 代码如下:

var i = 0.07;
var r = i*100;
alert(r);

结果为什么是7.0000000000000001?
查了下资料,其实我们知道JavsScript中,变量在存储时并不区分number和float类型,而是统一按float存储。而javascript使用IEEE 754-2008 标准定义的64bit浮点格式存储number,按照IEEE 754的定义: http://en.wikipedia.org/wiki/IEEE_754-2008
decimal64对应的整形部分长度为10,小数部分长度为16,所以默认的计算结果为“7.0000000000000001”,如最后一个小数为0,则取1作为有效数字标志。

类似地,我们可以想像,1/3的结果应该是0.3333333333333333。
那么如何校正这个值呢?
可以用以下方法:
一、parseInt

var r4=parseInt(i*100);

二、Math.round

var r2=Math.round((i*100)*1000)/1000;

以上两种方法都可以得到7
附全部测试代码:
复制代码 代码如下:



测试脚本





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)

Was ist der maximale Float-Wert? Was ist der maximale Float-Wert? Oct 11, 2023 pm 05:54 PM

Was ist der maximale Float-Wert?

Was sind die Float-Längen der Datenbank? Was sind die Float-Längen der Datenbank? Oct 10, 2023 pm 03:57 PM

Was sind die Float-Längen der Datenbank?

Wie hoch ist die Genauigkeit des Floats? Wie hoch ist die Genauigkeit des Floats? Oct 17, 2023 pm 03:13 PM

Wie hoch ist die Genauigkeit des Floats?

Was bedeutet Float in der C-Sprache? Was bedeutet Float in der C-Sprache? Oct 12, 2023 pm 02:30 PM

Was bedeutet Float in der C-Sprache?

So konvertieren Sie einen String in einen Float So konvertieren Sie einen String in einen Float Oct 16, 2023 pm 02:03 PM

So konvertieren Sie einen String in einen Float

Welche Werte hat das Float-Attribut? Welche Werte hat das Float-Attribut? Oct 10, 2023 pm 02:03 PM

Welche Werte hat das Float-Attribut?

Was ist der Unterschied zwischen Float und Double? Was ist der Unterschied zwischen Float und Double? Oct 11, 2023 pm 05:38 PM

Was ist der Unterschied zwischen Float und Double?

Was bedeutet float=0? Was bedeutet float=0? Oct 13, 2023 pm 04:14 PM

Was bedeutet float=0?

See all articles