我試過toFixed()
但它沒有做我想要的。 我想有一個轉換Javascript如何將float 2.0轉換爲字符串'2.0'?
2.0 --> '2.0'
2.123 --> '2.123'
0.05 --> '0.05'
我試過toFixed()
但它沒有做我想要的。 我想有一個轉換Javascript如何將float 2.0轉換爲字符串'2.0'?
2.0 --> '2.0'
2.123 --> '2.123'
0.05 --> '0.05'
一個行代碼基本上你想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'
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());
支持toLocaleString是非常現代的瀏覽器。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString#Browser_compatibility – epascarello
@epascarello爲了更好的兼容性,我添加了另一個答案。 – 4castle
您可以輕鬆地使用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));
什麼:的ToString() – Legends