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个月我需要以月计算的输出
答案 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);
答案 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);