2014-03-19 127 views

回答

7

让我们假设distance是肯定的浮动 - 如果是字符串,请执行:distance = parseFloat(distance)

您可以尝试与:

distance.toFixed(3); 

它给你3.643;

distance.toFixed(3).split('.'); 

它返回:你可以用它拆分分隔值

["3", "643"] 

所以得到它运行:

var distance = 3.643462215, 
    parts = distance.toFixed(3).split('.'), 
    output = 'my distance is ' + parts[0] + ' kilometers and ' + parts[1] + ' meters'; 

输出:

"my distance is 3 kilometers and 643 meters" 
1
Math.round(distance * 1000)/1000 
+0

OP要word.please仔细阅读问题 – Amit

+1

这有时不起作用,例如http://jsfiddle.net/Zk9x8/ – Huangism

4
var distance = 3.643462215; 

var reg = /(\d*)\.(\d{0,3})/; // using reg exp, because split won't work with float numbers 

var res = reg.exec(distance); 

console.log(res[1] + " Kilometers, " + res[2] + " Meters"); // 3 Kilometers, 643 Meters 

在剧本我(.之前和之后)的两件与RegExp帮助分裂数,然后用结果操纵存储在res可变

JSFiddle

+0

要跳过'substr',你可以使用下面的正则表达式:'/(\ d *)\。(\ d {0,3})/' – hsz

+0

@hsz是的,对,我突然想到了:) – tnanoba

2
var distance = 3.643462215; 

var n = Math.floor(distance); // KM part 

var m = Math.round((distance-n) * 1000); // meter part 
0

简单的解决方案我可以建议是

<script type="text/javascript"> 
var distance = 3.643462215; 
var strDistance = distance.toString(); 

var km = strDistance.substr(0, strDistance.indexOf('.')); 
var mt = strDistance.substr(strDistance.indexOf('.')+1, 3); 

alert("my distance is "+km+" kilometers and "+mt+" meters"); 
</script> 
+0

这不是最简单的解决方案! – tnanoba

相关问题