Javascript 如何解析逗号后有3位数字的浮点?

Javascript 如何解析逗号后有3位数字的浮点?,javascript,Javascript,我有浮点数 var distance = 3.643462215; 我希望结果是这样的: 我的距离是3公里和643米让我们假设距离确实是浮动的-如果它是字符串,请执行:距离=解析浮动(距离) Math.round(distance * 1000) / 1000 您可以尝试以下方法: distance.toFixed(3); 这将为您提供3.643;可以使用以下命令将其拆分为单独的值: distance.toFixed(3).split('.'); 它返回: ["3", "643"] 因

我有浮点数

var distance = 3.643462215;
我希望结果是这样的:


我的距离是3公里和643米

让我们假设
距离
确实是浮动的-如果它是字符串,请执行:
距离=解析浮动(距离)

Math.round(distance * 1000) / 1000
您可以尝试以下方法:

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"
在脚本中,我借助于
RegExp
(在
之前和之后)将数字分成两部分,然后使用存储在
res
变量中的结果进行操作


我能建议的最简单的解决方案是

<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>

var距离=3.643462215;
var strDistance=距离.toString();
var km=strInstance.substr(0,strInstance.indexOf('.');
var mt=strInstance.substr(strInstance.indexOf('.')+1,3);
警报(“我的距离为“+km+”公里和“+mt+”米”);

要跳过
substr
您可以使用以下正则表达式:
/(\d*)\(\d{0,3})/
这不是最简单的
解决方案!
var distance = 3.643462215;

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

var m = Math.round((distance-n) * 1000); // meter part
<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>