2016-10-03 90 views
1

初級程序員在這裏。我目前正在研究舍入號碼功能javascript十進制數字

所以,起初,每個項目都會有一個價格。然後有一個額外的百分比按鈕來根據插入的值增加項目價格。

所以我們假設項目A的價格是1美元,那麼我在該百分比中插入價值25%。它會給我1.33。 如何編寫將返回1.35而不是1.33的函數?

又如,$ 2.67成爲$ 2.70 $ 12.34成爲$ 12.35

這裏是我的代碼

var price  = parseFloat(items.price); //1 
var percentage = parseFloat(vm.data.percentage); //25% 
added_price = parseFloat(price)/(parseFloat(100) - parseFloat(percentage)) * 100; //formula 
items.price = parseFloat(added_price).toFixed(vm.data.decimal); //the result = 1.33 

有人可以幫我請?謝謝:)

+6

只是想知道,爲什麼是0.33 == 25% 1? – JohnnyAW

+1

將您的評分乘以2,然後使用Math.Round(rating,MidpointRounding.AwayFromZero)',然後將該值除以2. –

回答

1

步驟做到這一點「自定義」四捨五入。

  1. 乘以2,以便得到最接近的0.5。
  2. 乘以10,以便讓它圓潤。
  3. Round/Ceil數字關閉。
  4. 將乘除以20除。
  5. 輸出已驗證。 :)

乘以2並四捨五入。而FYI,它將是2.65而不是2.70。您需要使用Math.ceil()而不是round

var p1 = 2.67; 
 
var p2 = 12.34; 
 

 
function round_to_custom(num) { 
 
    num *= 20; 
 
    num = Math.round(num); 
 
    num /= 20; 
 
    return num; 
 
} 
 

 
console.log(round_to_custom(p1)); 
 
console.log(round_to_custom(p2));

使用ceil(用於獲取更多$$$客戶):

var p1 = 2.67; 
 
var p2 = 12.34; 
 

 
function round_to_custom(num) { 
 
    num *= 20; 
 
    num = Math.ceil(num); 
 
    num /= 20; 
 
    return num; 
 
} 
 

 
console.log(round_to_custom(p1)); 
 
console.log(round_to_custom(p2));

+0

您是一位拯救生命的先生!非常感謝! – Vinfoster0701

+0

@ Vinfoster0701謝謝。請通過接受答案來返回。 ☺ –

+0

我會的。仍然需要等待的時間限制才能接受答案:) – Vinfoster0701