首頁 web前端 js教程 Javascript浮點數乘積運算出現多位小數的解決方法_javascript技巧

Javascript浮點數乘積運算出現多位小數的解決方法_javascript技巧

May 16, 2016 pm 04:59 PM
乘積 浮點數

Javascript在進行浮點數的乘積運算,會出現多位小數的情況。

這是由於在運算的時候先把浮點數轉換成二進制後進行運算,但是有的小數在二進制編碼後出現無限循環,因而導致計算出現了誤差,在其它變成語言中也有類似的問題。

原因解釋參考自百度知道:

例如:求1038.1-1000
1038.1=10000001110.0001100110011001100001110.000110011001100110101 00 =1111101000

1038.1轉化為二進位是個無限迴圈小數,1100是迴圈節,只能取近似值,誤差就是這裡產生的如果瀏覽器版本高,可以用toFixed() 方法可把Number 四捨五入為指定小數位數的數字。

解:依照要保留的小數位數(如4),在計算乘積的時候先乘以(10^4),然後將計算結果除以(10^4),最後對結果取近似值Math.round

複製碼 程式碼如下:
var m1 = 22 percent = (10/100),
total = percent*m1;
alert(total);//223.20000000000002

total = Math.round(total*10)/10D; >alert(total);//223.2


本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1663
14
CakePHP 教程
1419
52
Laravel 教程
1313
25
PHP教程
1263
29
C# 教程
1237
24
php怎麼將字串轉換成小數 php怎麼將字串轉換成小數 Mar 22, 2023 pm 03:22 PM

PHP 是一門功能強大的程式語言,廣泛應用於 Web 開發領域。其中一個非常常見的情況是需要將字串轉換為小數。這在進行資料處理的時候非常有用。在本文中,我們將介紹如何在 PHP 中將字串轉換為小數。

PHP浮點數四捨五入法 PHP浮點數四捨五入法 Mar 21, 2024 am 09:21 AM

這篇文章將為大家詳細講解有關PHP浮點數四捨五入法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章後可以有所收穫。 PHP浮點數四捨五入法概述浮點數在計算機中表示為小數點後跟指數,然而,它們通常以有限位數的近似值存儲。當需要將浮點數四捨五入到特定精度時,有幾種方法可以實現。方法1.round()函數round()函數將浮點數四捨五入為最接近的整數。它接受浮點數和可選的精度參數。例如:$num=1.55;echoround($num);//輸出:2echoround($num,1)

使用strconv.FormatFloat函數將浮點數轉換為字串 使用strconv.FormatFloat函數將浮點數轉換為字串 Jul 25, 2023 am 11:45 AM

使用strconv.FormatFloat函數將浮點數轉換為字串在Go語言中,我們經常需要將浮點數轉換為字串類型,用於輸出或儲存等需求。 Go語言中提供了strconv包,其中的FormatFloat函數可以將浮點數轉換為字串類型。 FormatFloat函數有三個參數:f表示要轉換的浮點數,fmt表示格式,以及prec表示要保留的小數位數。其中,f參數

PHP浮點數計算誤差原因及避免策略 PHP浮點數計算誤差原因及避免策略 Feb 27, 2024 pm 06:33 PM

PHP作為一種流行的伺服器端腳本語言,在進行浮點數計算時常常會遇到精確度遺失或計算誤差的問題,這些問題可能會對程式的準確性和穩定性造成影響。本文將探討PHP浮點數計算誤差的原因,並提出一些避免策略,同時給予特定的程式碼範例供參考。 1.PHP浮點數計算誤差的原因在計算機中,浮點數是以二進制形式表示的,而二進制並不能精確地表示所有的十進制小數,這就導致了浮點數的精

深入淺出解析PHP BCMath:釋放數字運算的潛力 深入淺出解析PHP BCMath:釋放數字運算的潛力 Feb 23, 2024 am 09:10 AM

:一、BCMath簡介BCMath是PHP內建的擴充庫,專門用來處理大型整數和浮點數運算。它提供了豐富的函數來進行加、減、乘、除、平方、開方等各種數學運算,並且支援多種進制的數字表示。二、BCMath的優勢BCMath相較於php原生提供的算術運算子和函數,主要有以下幾個方面的優勢:精度更高:BCMath的運算結果可以保留更多的有效數字,這對於涉及大數計算的場景尤其重要。範圍更廣:BCMath可以處理比PHP原生資料類型更大的數字,從而避免溢出或精度遺失的問題。功能更豐富:BCMath提供了

使用C#中的Math.Round函數對浮點數進行四捨五入 使用C#中的Math.Round函數對浮點數進行四捨五入 Nov 18, 2023 pm 02:17 PM

使用C#中的Math.Round函數對浮點數進行四捨五入,需要具體程式碼範例在C#程式語言中,有時我們需要對浮點數進行四捨五入操作。這時,我們可以使用Math.Round函數來實現此功能。 Math.Round函數是C#中一個用於數學計算的內建函數,其主要功能是對指定的浮點數進行四捨五入。以下是Math.Round函數的常用格式:Math.Round(doub

如何在PHP中將字串轉換為浮點數 如何在PHP中將字串轉換為浮點數 Mar 27, 2024 pm 12:48 PM

將字串轉換為浮點數是在PHP中常見的操作,可以透過內建的方法來實現。首先要確保字串是合法的浮點數格式,才能成功轉換為浮點數。以下將詳細介紹如何在PHP中將字串轉換為浮點數,並提供具體的程式碼範例。一、使用(float)強制轉換在PHP中,將字串轉換為浮點數最簡單的方式就是使用強制轉換。強制轉換的方式是在字串前加上(float)即可,PHP會自動將其

淺析php字串轉浮點數的多種方法,哪一種比較適合你! 淺析php字串轉浮點數的多種方法,哪一種比較適合你! Mar 20, 2023 pm 04:09 PM

在PHP中,將字串轉換為浮點數有幾種方法。在本文中,我們將探討這些方法並解釋哪種方法更適合您的需求。

See all articles