2016-07-07 36 views

回答

0

一個行代碼基本上你想toString()而是用最少的小數點(1)。這是一個可以做你想做的事情的單線程。

var num = 5;

num.toFixed(Math.max(1, num.toString().substr(num.toString().indexOf(".")+1).length));

我寧願只是堅持這一個功能 -

function floatToString(num) { 
    return num.toFixed(Math.max(1, num.toString().substr(num.toString().indexOf(".")+1).length)); 
} 

用法:

floatToString(2.0) --> '2.0' 
floatToString(2.123) --> '2.123' 
floatToString(0.05) --> '0.05' 
+0

這是很酷的,夥計 – webdeb

+0

這是做的方式更工作比需要。有更簡單的答案。 – 4castle

+0

@ 4castle這個問題需要一個單線,而你的答案都不是。 – btraas

0

它可以與Number#toLocaleString()

完成

Number.prototype.toFloatString = function() { 
 
    return this.toLocaleString("en-US", { 
 
    minimumFractionDigits: 1, 
 
    maximumFractionDigits: 20 // the default is 3 if min < 3 
 
    }); 
 
}; 
 

 
console.log((2.0).toFloatString()); 
 
console.log((2.123).toFloatString()); 
 
console.log((0.05).toFloatString());

或者,只是使用toString(),然後添加.0如果該號碼是一個整數

Number.prototype.toFloatString = function() { 
 
    var str = this.toString(); 
 
    return str.indexOf(".") < 0 ? str + ".0" : str; 
 
}; 
 

 
console.log((2.0).toFloatString()); 
 
console.log((2.123).toFloatString()); 
 
console.log((0.05).toFloatString());

+0

支持toLocaleString是非常現代的瀏覽器。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString#Browser_compatibility – epascarello

+0

@epascarello爲了更好的兼容性,我添加了另一個答案。 – 4castle

0

您可以輕鬆地使用toString()就會產生期望的輸出預計爲0.0浮點數。因此,您可以使用此功能:

function floatToStr(num) { 
    return num.toString().indexOf('.') === -1 ? num.toFixed(1) : num.toString(); 
} 

演示:

function floatToStr(num) { 
 
    return num.toString().indexOf('.') === -1 ? num.toFixed(1) : num.toString(); 
 
} 
 

 
console.log(floatToStr(2.0)); 
 
console.log(floatToStr(2.123)); 
 
console.log(floatToStr(0.05));

相關問題