2010-02-05 36 views
16

tôi cần phải làm tròn lên đến gần nhất 0.10 với tối thiểu là 2,80vòng lên gần 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); 
} 

bất kỳ trợ giúp sẽ được đánh giá cao

Trả lời

20
var number = 123.123; 

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

+1 cho .toFixed() –

0

làm tròn đến 0,10 khu vực gần bạn có thể nhân bằng 10, sau đó vòng (sử dụng Math.round), sau đó chia cho 10

+0

làm thế nào để viết đó? phần tròn của nó tôi không biết làm thế nào để –

3

Multiply 10, sau đó làm tròn của bạn, sau đó chia cho 10 một lần nữa

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

lựa chọn khác là:

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

Trong mã của bạn:

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); 
} 

Để khai báo một mức tối thiểu, sử dụng Math.max chức năng:

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: Đó chỉ là một số ngẫu nhiên tôi đã nhổ ra khỏi đầu của tôi, thay thế nó bằng số bạn muốn làm tròn đến '.10' gần nhất. –

+0

@Tuffy G: Có thể chỉnh sửa của tôi sẽ giúp bạn hiểu rõ hơn? –

+0

Đã xong. là có cách tôi có thể hiển thị tối thiểu 2.80 –

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

Nếu bạn cần đến tròn lên, sử dụng Math.ceil:

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

Round đến mười gần nhất:

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

Vòng lên:

Math.max(Math.ceil(x * 10)/10, 2.8).toFixed(2) 
Các vấn đề liên quan