0
var schemeduration = '1.5';// 1 year and 5 months
var schemeduration= (parseFloat(schemeduration) * 12).toFixed(0) ;
alert(schemeduration);

1.1 = 13 months
1.2 = 14 months
1.3 = 15 months
1.4 = 16 months
1.5 = 17 months
1.6 = 18 months
1.7 = 19 months
1.8 = 20 months
1.9 = 21 months
1.10 = 22 months
1.11 = 23 months
1.12 = 24 months

如何以十进制显示给定年份的确切月份。对于上面给出的它应该显示 17,但我得到的值为 18。一年中有 12 个月我需要以月份计算的输出

JSFIDDLE

4

4 回答 4

2

这应该有效:

var schemeduration = '1.5';

if(schemeduration.indexOf('.') === -1) schemeduration += '.0';

var years = Math.floor(parseFloat(schemeduration));
var months = parseInt(schemeduration.split('.')[1], 10);

schemeduration = years * 12 + months;

alert(schemeduration);

演示:http: //jsfiddle.net/NsBxX/1/

于 2013-07-15T17:32:03.577 回答
1

这样做:工作 jsFiddle

var schemeduration = '1.5';
var arr = schemeduration.split('.');
var ans = (Number(arr[0]) * 12) + Number(arr[1]);

alert(ans);

首先,您将字符串分成以小数点作为分隔符的两部分。然后将年份部分乘以 12(月)并加上月份部分。

于 2013-07-15T17:32:19.797 回答
0

不要将文本字符串 '1.10' 视为单个浮点数。如果这样做,您将看不到与“1.1”的区别。尽管如此,如果您想这样做,您的第一个 1 年 1 个月应该改为“1.01”。

要解析您当前的系统,请在句点上将输入字符串一分为二。然后将第一个数字乘以 12 与第二个数字相加。

于 2013-07-15T17:32:16.777 回答
0

你应该在'。'上分开。令牌,第一个值将是 *12,因为它是以年为单位的。将此添加到第二个值,你很好

var schemeduration = '1.5';
var tokens = schemeduration.split('.');
var years = parseInt(tokens[0]);
var months = parseInt(tokens[1]);

alert(years*12+months); 
于 2013-07-15T17:32:27.793 回答