我正在研究一個JavaScript函數,它具有兩個值:十進制值的精度&十進制值的刻度。使用刻度和精度計算小數的最大值
該函數應計算可以存儲在該大小的小數中的最大值。
例如:精度爲5,刻度爲3的小數的最大值爲99.999。
我所做的工作,但它不是優雅。任何人都能想到更聰明的東西嗎?
此外,請原諒使用這個奇怪的匈牙利符號版本。
function maxDecimalValue(pintPrecision, pintScale) {
/* the maximum integers for a decimal is equal to the precision - the scale.
The maximum number of decimal places is equal to the scale.
For example, a decimal(5,3) would have a max value of 99.999
*/
// There's got to be a more elegant way to do this...
var intMaxInts = (pintPrecision- pintScale);
var intMaxDecs = pintScale;
var intCount;
var strMaxValue = "";
// build the max number. Start with the integers.
if (intMaxInts == 0) strMaxValue = "0";
for (intCount = 1; intCount <= intMaxInts; intCount++) {
strMaxValue += "9";
}
// add the values in the decimal place
if (intMaxDecs > 0) {
strMaxValue += ".";
for (intCount = 1; intCount <= intMaxDecs; intCount++) {
strMaxValue += "9";
}
}
return parseFloat(strMaxValue);
}
在dnc253的原始答案後,我最終提出了這個問題。感謝您的確認! – 2012-01-05 21:26:12