js中進行金額計算
JavaScript提供了3個顯式的型別轉換函式,分別是eval()、parseInt()和parseFloat()。
eval()函式:將字串表示式轉換成數字值。例如,語句total=eval("432.1*10")的結果是total=4321即將數值4321賦予total變數。
parseInt()函式:把字串轉換成整數。返回是從字串的第一個字元開始,如果字元不是以整數開頭則返回0。parseInt()函式還可以轉換十六進位制數或十進位制數。
例如:parseInt("123xyz") 返回123,而parseInt("xyz")返回0。
parseFloat()函式:類似於parseInt()函式,它返回字串上包含的第一個浮點數。如果字串不以有效浮點數開頭,則返回0。
例如:parseFloat("2.1e4xyz")返回21000;而parseFloat("xyz")返回0。
JavaScript中parseFloat函式方法是返回由字串轉換得到的浮點數。 使用方法:
parseFloat(numString)其中numString 引數是包含浮點數的字串。JavaScript中parseFloat函式方法返回與 numString 中儲存的數相等的數字表示。如果 numString 的字首不能解釋為浮點數,則返回 NaN (而不是數字)。
parseFloat("abc") // 返回 NaN。
parseFloat("1.2abc") // 返回 1.2。
在js中進行以元為單位進行金額計算時 使用parseFloat會產生精度問題
var price = 10.99;
var quantity = 7;
var needPay = parseFloat(price * quantity);
needPay的正確結果應該是76.93元 但是執行後發現needPay為76.93000000000001
此情況可通過 toFixed(n) 方法修正 但是這個方法對 js版本要求較高 不能相容ie5
另一個解決方案是: 將元為單位的金額乘以100換算為分進行計算
var price = 10.99
var quantity = 7
var needPay = Math.floor(parseFloat(price*100 * quantity))/100;
parseFloat(price*100 * quantity)的計算結果是7693.000000000001 使用Math.round()方法四捨五入,再除100 即為正確的結果
Math.ceil() 是向上取整
Math.floor()是向下取整
Math.round()是四捨五入
第一種:四捨五入 Math.round(parseFloat("234432.9")-parseFloat"0.2"));
第二種:保留幾位小數
num.toFixed(2); toFixed(n)中的n代表保留幾位
第三種:擴大一定的倍數,對結果在縮小這個倍數
var num1=parseFloat("234432.9")*1000000000000;
var num2=parseFloat("0.2")*1000000000000;
var num3=(num1-num2)/1000000000000;
結果為 234432.7
相關推薦
js中進行金額計算
JavaScript提供了3個顯式的型別轉換函式,分別是eval()、parseInt()和parseFloat()。 eval()函式:將字串表示式轉換成數字值。例如,語句total=eval("432.1*10")的結果是total=4321即將數值4321賦予t
[JS]在js中進行正則替換顯示高亮處理中,重復替換問題,可以使用js自帶的批量替換,則不會重復替換
數組組合 高亮顯示 log words reg his ucc div == //js高亮顯示 function highlight(){ if($.trim($(‘#pscws‘).val()) != ‘‘){ var url = $("#analys
js中的小數計算精度問題,修正計算精度
js 的精度問題這個網上比較多,進行加減乘除運算也難免,常見的比如: 1)在控制檯 輸入:1.1+0.3 運算結果是:1.4000000000000001,根本原因也就是二進位制和十進位制轉換的問題,具體源由參考網上相關文章,有一種解決辦法:兩個數分別剩10的N次方最後再除10的N次方,比如:(
web3.js中estimateGas如何計算智慧合約消耗的gas量
我們可使用web3.js框架的estimateGas函式獲得一個以太坊智慧合約的Gas估計值 ,通過執行一個訊息呼叫或交易,該訊息呼叫或交易直接在節點的VM中執行,並未在區塊鏈中確認,函式會返回估算使用的gas量。函式呼叫:web3.eth.estimateGas(callO
js中關於!+[]+[]如何進行計算
前幾天朋友問了我一個問題,(!+[]+[]).length 得什麼,我一時間還真沒反應過來,後來百度查了資料才知道了是如何計算的,控制檯輸入得到如下: 首先js是弱型別語言,所以導致js的隱式型別
Node.js中的異步I/O是如何進行的?
ioc 而是 網絡 調用 發現 回調函數 異步調用 技術 如何 Node.js的異步I/O通過事件循環的方式實現。其中異步I/O又分磁盤I/O和網絡I/O。在磁盤I/O的調用中,當發起異步調用後,會將異步操作送進libuv提供的隊列中,然後返回。當磁盤I/O執行完成之後,會
在angular.js中利用js代碼進行頁面刷新
fun r.js js代碼 http 調用函數 cti load ati cati 今天在完成angular項目的時候,需要用到頁面刷新功能,想想有點茫然,上網了找到一種在angular中很好用的方法: (1)先在控制器中註冊$window; (
java,js中小數計算精度誤差問題
sys OS 時有 無限 小數 java sdn 符號位 ava 在碰見這個問題之前我完全沒有這個概念,碰見了特此記錄; 項目js裏面中用到了number*0.2(其中number是一個整數,我測試的時候是259),得到的結果卻是51.800000000000000
js中得計算問題算式結果拼接成字符串怎麽解決
類型 計算 rod -s parse checked ctc 解決 function 如題:經常遇到類似問題 一種;自定義的弱類型 var savNum=0; var num=$("#numU").val();//jsp頁面獲得得值 savNum=parseInt(savN
JS中使用時間戳,獲取當前日期,計算前一週的日期~
今天專案中用到了一點 隨便記錄一下 function timestampToTime(timestamp) { var date = new Date(timestamp * 1000);//時間戳為10位需*1000,時間戳為13位的話不需乘1000 var Y =
在瀏覽器中進行深度學習:TensorFlow.js (八)生成對抗網路 (GAN
Generative Adversarial Network 是深度學習中非常有趣的一種方法。GAN最早源自Ian Goodfellow的這篇論文。LeCun對GAN給出了極高的評價: “There are many interesting recent development in deep learni
如何使用Web3.js API 在頁面中進行轉賬
寫在前面 閱讀本文前,你應該對以太坊、智慧合約、錢包的概念有所瞭解,如果你還不瞭解,建議你先看以太坊是什麼 除此之外,你最好還了解一些HTML及JavaScript知識。 轉賬UI 頁面的編寫 轉賬UI主體的介面如圖: 實現這個介面
通過sqoop將mysql資料匯入到hive中進行計算示例
hive計算示例 先將資料通過sqoop從mysql匯入hive,在hive執行mysql的查詢語句,得到與mysql一樣的執行結果 步驟: mysql資料準備 account賬號表 detail收支資料表 CREATE TABLE
在JS中模擬表單的post提交,進行頁面的跳轉
封裝為Post(URL, PARAMTERS) 函式: /* *功能: 模擬form表單的提交 *引數: URL 跳轉地址 PARAMTERS 引數 */ function Post(URL
MySQL中關於金額資料進行運算求和/整數時精度丟失/清空表資料,自增從1開始
關於MySQL的使用總結: 1.金額欄位型別為String時,進行求和運算 2.查詢DECIMAL型別資料小數點後精度缺失丟失為0的小數 3.清空表的資料,id自增從1開始的方法 1.金額欄位型別為String時,進行求和運算 之前
Vue.js中計算屬性和方法的區別
在vue.js中,計算屬性和方法達到的效果是一樣的,但是計算屬性是基於依賴進行快取的,只有message發生改變才會導致reverseMessage發生改變,只要 message 還沒有發生改變,多次訪問 reversedMessage 計算屬性會立即返回之前的計算結果,而不
使用Web3.js API 在頁面中進行轉賬
閱讀本文前,你應該對以太坊、智慧合約、錢包的概念有所瞭解,如果你還不瞭解,建議你先看以太坊是什麼除此之外,你最好還了解一些HTML及JavaScript知識。 轉賬UI 頁面的編寫 轉賬UI主體的介面如圖: 實現這個介面很簡單,這裡就不程式碼了。大家可以開啟Demo,右擊檢視頁面原始碼。
JS中關於a+aa+aaa+aaaa的簡便計算方法
題目Sn=a+aa+aaa+aaaa....+n個a 這個題一個難點就是a的位數是變動的,第一項是一位,第二項是兩位,第三項是三位。 首先累加一定要是迴圈的,但是如何構造出每一項呢? 我大概
前端框架Vue(13)——vue 中如何對公共css、 js 方法進行單檔案統一管理,全域性呼叫
1、前言 最近,為公司開發交付的一個後臺管理系統專案,我使用了 Vue 框架進行開發實踐。 模組化、元件化、工程化的開發體驗非常好。良好的 api,優雅的設計,對於工程師非常友好。 但是由於模組比較多,我對於每個模組分配了不同的
js中Date()的用法及日期計算方法
getDate() 從 Date 物件返回一個月中的某一天 (1 ~ 31)。 getDay() 從 Date 物件返回一週中的某一天 (0 ~ 6)。 getMonth() 從 Date 物件返回月份 (0 ~ 11)。 getFullYear() 從 Date 物件以四位數字返回年份。 getYear()