2010-02-05 40 views
16

我需要四捨五入到最接近的0.10最低2.80圓了最近的0.10

var panel; 
if (routeNodes.length > 0 && (panel = document.getElementById('distance'))) 
{    
    panel.innerHTML = (dist/1609.344).toFixed(2) + " miles = £" + (((dist/1609.344 - 1) * 1.20) + 2.80).toFixed(2); 
} 

任何幫助,將不勝感激

回答

20
var number = 123.123; 

Math.max(Math.round(number * 10)/10, 2.8).toFixed(2); 
+3

+1 .toFixed() – 2011-02-20 20:58:22

0

舍入到最近的0.10,你可以乘以10,再圓(使用Math.round),然後通過10

+0

我怎麼寫?它的圓整部分,我不知道如何 – 2010-02-05 09:57:54

3

乘除以10,然後做你的舍入,然後用10再次

(Math.round(12.362 * 10)/10).toFixed(2) 
劃分

另一種選擇是:

Number(12.362.toFixed(1)).toFixed(2) 

在您的代碼:

var panel; 
if (routeNodes.length > 0 && (panel = document.getElementById('distance')))  
{    
    panel.innerHTML = Number((dist/1609.344).toFixed(1)).toFixed(2) 
        + " miles = £" 
        + Number((((dist/1609.344 - 1) * 1.20) + 2.80).toFixed(1)).toFixed(2); 
} 

要聲明一個最低限度,使用Math.max功能:

var a = 10.1, b = 2.2, c = 3.5; 
alert(Math.max(a, 2.8)); // alerts 10.1 (a); 
alert(Math.max(b, 2.8)); // alerts 2.8 because it is larger than b (2.2); 
alert(Math.max(c, 2.8)); // alerts 3.5 (c); 
+0

@Tuffy G:這只是一個隨機數,我從我的腦海中拔出,取而代之的是要繞到最接近的「.10」的數字。 – 2010-02-05 10:03:04

+0

@Tuffy G:也許我的編輯能幫助你更好地理解? – 2010-02-05 10:05:54

+0

完成了。 有沒有辦法讓它顯示最小值2.80 – 2010-02-05 10:10:54

1
var miles = dist/1609.344 
miles = Math.round(miles*10)/10; 
miles = miles < 2.80 ? 2.80 : miles; 
7

如果您需要到一輪上漲,使用Math.ceil:

Math.max(Math.ceil(number2 * 10)/10, 2.8) 
0

回合最近的十分之一:

Math.max(x, 2.8).toFixed(1) + '0' 

四捨五入:

Math.max(Math.ceil(x * 10)/10, 2.8).toFixed(2)