Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何移动小数点?_Javascript_Decimal_Move - Fatal编程技术网

Javascript 如何移动小数点?

Javascript 如何移动小数点?,javascript,decimal,move,Javascript,Decimal,Move,在JavaScript中,我想定义小数点的位置。我只能用例子来说明 假设输入值为1234 我希望输出为123.4 或者,如果输入是12345,我希望输出是123.45 或者,如果输入是123456,我希望输出是123.456。你明白了 为了澄清,我只希望小数点左边有三位数字。总位数未知 那么,这是怎么做到的呢?基础数学,将数字除以10,将1个小数位移到左边。然后乘以10,得到相反的结果 “假设输入值为1234。我希望输出值为123.4” 1234/10=123.4 或者,如果输入是12345,我

在JavaScript中,我想定义小数点的位置。我只能用例子来说明

假设输入值为
1234

我希望输出为
123.4

或者,如果输入是
12345
,我希望输出是
123.45

或者,如果输入是
123456
,我希望输出是
123.456
。你明白了

为了澄清,我只希望小数点左边有三位数字。总位数未知


那么,这是怎么做到的呢?

基础数学,将数字除以10,将1个小数位移到左边。然后乘以10,得到相反的结果

“假设输入值为1234。我希望输出值为123.4”

1234/10=123.4

或者,如果输入是12345,我希望输出是123.45


12345/100=123.45

算出小数点向左移动的位数,然后用10除以该数字的幂:

123.456=123456/(10^3)

其中,
^
提升为幂。

123456是123.456乘以1000。这意味着您可以用除法将小数点移动:

var num1 = 1234 / 10;  //sets num1 to 123.4
var num2 = 12345 / 100;  //sets num2 to 123.45
var num3 = 123456 / 1000;  //sets num3 to 123.456
或者,如果要以更一般的形式设置小数位数,可以使用Math.pow函数:

var num3 = 123456 / Math.pow(10, 3);  //sets num3 to 123.456

3
是因为您希望前3位数字为整数,因此基数根据
n
的大小而变化

function moveDecimal(n) {
  var l = n.toString().length-3;
  var v = n/Math.pow(10, l);
  return v;
}

试试1234、12345和123456。

那么基本上你想要第三位后面的小数点?您需要将其作为字符串还是用于数学运算?Javascript不使用^exponent运算符。@Peter,我认为他给出的是一个数字方程,而不是Javascript。为了澄清,我只希望小数点左侧有三位数字。总位数未知。如何显示尾随的零?假设你希望5007看起来像500。70@duckx
toFixed()
可以这样做这可能适用于整数,但不适用于十进制值。有一个精度损失。Try:var a=0.7;
var n = 1234;
var l = n.toString().length-3;
var v = n/Math.pow(10, l); // new value
function moveDecimal(n) {
  var l = n.toString().length-3;
  var v = n/Math.pow(10, l);
  return v;
}