如何以十进制显示给定年份的确切月份

时间:2013-07-15 17:21:44

标签: javascript jquery

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 个答案:

答案 0 :(得分: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/

答案 1 :(得分:1)

执行此操作:working jsFiddle

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

alert(ans);

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

答案 2 :(得分:0)

不要将文本字符串“1.10”视为单个浮点数。如果你这样做,你就看不出与'1.1'的区别。但是,如果你想要,你的第一个1年1个月应该是'1.01'。

要解析当前系统,请在句点上将输入字符串拆分为两个。然后将第一个数字加12加到第二个数字。

答案 3 :(得分:0)

你应该拆分'。'令牌,第一个值将是* 12,因为它是多年。将其添加到第二个值,你很好

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

alert(years*12+months);