我有一个代码,我需要到达的数字返回小数点后的1或2位,而不是像现在这样的15位,这就是我所拥有的。
function GetDiff (dt) {
sMins = " Min";
sHours = " Hrs";
sDays = " Days";
if ( Math.abs (DateDiff ("n", now, dt)) < 1440 ) {
if ( Math.abs (DateDiff ("n", now, dt)) <= 60 ) {
return (Math.abs (DateDiff ("n", now, dt)) + sMins);
}
else
{
return (Math.abs (DateDiff ("n", now, dt)/60) + sHours);
}
}
else
{
return (Math.abs (DateDiff ("n", now, dt)/1440) + sDays);
}
}
您可以使用.toFixed(2)
将数字格式化为小数点后2位。
注意,.toFixed()
返回一个字符串,因此如果您想再次将结果作为数字处理,则需要parseFloat()
。
function GetDiff (dt) {
sMins = " Min";
sHours = " Hrs";
sDays = " Days";
if ( Math.abs (DateDiff ("n", now, dt)) < 1440 ) {
if ( Math.abs (DateDiff ("n", now, dt)) <= 60 ) {
return (Math.abs (DateDiff ("n", now, dt)) + sMins).toFixed(2);
}
else
{
return (Math.abs (DateDiff ("n", now, dt)/60) + sHours).toFixed(2);
}
}
else
{
return (Math.abs (DateDiff ("n", now, dt)/1440) + sDays).toFixed(2);
}
}
var num = 5.56789;
var n=num.toFixed(2);
所以基本上你需要四舍五入值:
function GetDiff (dt) {
sMins = " Min";
sHours = " Hrs";
sDays = " Days";
if ( Math.abs (DateDiff ("n", now, dt)) < 1440 ) {
if ( Math.abs (DateDiff ("n", now, dt)) <= 60 ) {
return (Math.abs (DateDiff ("n", now, dt)) + sMins).toFixed(2);
}
else
{
return (Math.abs (DateDiff ("n", now, dt)/60) + sHours).toFixed(2);
}
}
else
{
return (Math.abs (DateDiff ("n", now, dt)/1440) + sDays).toFixed(2);
}
}
来源:https://stackoverflow.com/a/8927144/821056
http://www.mredkj.com/javascript/numberFormat.html
以下是如何将数字四舍五入到两位小数
var original=28.453
var result=Math.round(original*100)/100 //returns 28.45
取自:http://www.javascriptkit.com/javatutors/round.shtml
我想通了!!现在,每当我输入.tofixed时,它都不起作用,但正如我所说,这是脚本中稍后代码的函数,所以idk。
function GetDiff (dt) {
sMins = " Min";
sHours = " Hrs";
sDays = " Days";
if ( Math.abs (DateDiff ("n", now, dt)) < 1440 ) {
if ( Math.abs (DateDiff ("n", now, dt)) <= 60 ) {
return (Math.abs (DateDiff ("n", now, dt)) + sMins);
}
else
{
return ((Math.floor(Math.abs (DateDiff ("n", now, dt)/60)*10)/10) + sHours);
}
}
else
{
return ((Math.floor(Math.abs (DateDiff ("n", now, dt)/1440)*10)/10) + sDays);
}
}
使用DecimalFormatter:
double number = 0.9999999999999;
DecimalFormat numberFormat = new DecimalFormat("#.00");
System.out.println(numberFormat.format(number));
会给你"0.99"。你可以在右边加或减0,得到或多或少的小数。
或者使用右侧的"#"使附加数字可选,如中的#。##(0.30)将使尾部0下降为(0.3)。